Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
1

Размер рамки изображения по размеру экрана устройства

27.02.2014, 13:17. Просмотров 776. Ответов 0
Метки нет (Все метки)

Виджет имеет размер 74dp на 74dp - условно, т.е. равносоторнний, но на экране он выглядит вытянутым. Хочется повесить на виджет фотографию и ее по возможности обрезать, но обрезать нужно так, что бы потом на виджете она не растягивалась и не сплющивалась. Как задать рамку обрезки правильно, никак не соображу.

Java
1
2
3
4
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
Добавлено через 1 час 12 минут
Короче сделал вот так, вроде работает, но не проверял на подводные камни...
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
                float koefX = 1f;
                float koefY = 1f;
                Display display = getWindowManager().getDefaultDisplay();  
                Point outSize = new Point();
                if(android.os.Build.VERSION.SDK_INT >= 13){
                    display.getSize(outSize);
                }else{
                    outSize.x = display.getWidth();
                    outSize.y = display.getHeight();
                }
                int rotation = display.getRotation();
                switch(rotation) {
                case Surface.ROTATION_0:
                case Surface.ROTATION_180:
                    koefX=1f;
                    koefY = (float)outSize.y / outSize.x;
                    break;
                case Surface.ROTATION_90:
                case Surface.ROTATION_270:
                    koefX = (float)outSize.x / outSize.y;
                    koefY=1f;
                    break;
                }
                int X = (int)Math.round(dip2px(gd.width)*koefX);
                int Y = (int)Math.round(dip2px(gd.height)*koefY);
 
cropIntent.putExtra("aspectX", koefX);
cropIntent.putExtra("aspectY", koefY);
cropIntent.putExtra("outputX", X);
cropIntent.putExtra("outputY", Y);
Добавлено через 35 минут
Только вот рамка обрезки фото при перемещении ее границ не сохраняет свои пропорции...как бы ее заставить сохранять? Когда aspect был равен по 1, то рамка изменялась с сохранением пропорции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 13:17
Ответы с готовыми решениями:

Расположение элементов экрана пропорционально его размеру
Всем привет! Подскажите, как сделать так, чтобы при использовании устройства, у...

Как подгонять размер диалоговых окон по размер экрана?
Здравствуйте! Как подгонять размер диалоговых окон по размер экрана? У меня...

Как масштабировать нарисованное на холсте по размеру экрана? android.graphics.Canvas
Здравствуйте. Помогите, пожалуйста, разобраться. Изучаю рисование на андроид....

Определение размеров экрана устройства
Хочу отцентрировать несколько кнопок на Activity. Кнопки кидаю в контейнер. ...

Цвет пикселя экрана android-устройства
Здравствуйте. Реально ли получить цвет пикселя экрана android-устройства,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2014, 13:17

Как программно взять диагональ экрана андроид устройства?
Помогите, пожалуйста, определить к какому drawable (mdpi, hdpi, xdpi...)...

Размер экрана
Нашел приложение. Когда запускаю его на Bluestacks размер Bluestacks...

Физический размер экрана
Пишу на OpenGL ES DisplayMetrics metrics = new DisplayMetrics();...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru