Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
#1

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

27.02.2014, 13:17. Просмотров 707. Ответов 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):

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

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

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

Определение размеров экрана устройства - Программирование Android
Хочу отцентрировать несколько кнопок на Activity. Кнопки кидаю в контейнер. LinearLayout myContainer = new LinearLayout(this); ...

Цвет пикселя экрана android-устройства - Программирование Android
Здравствуйте. Реально ли получить цвет пикселя экрана android-устройства, напрямую? Нашёл в сети такой код (Get the colour of a...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.02.2014, 13:17
Привет! Вот еще темы с ответами:

Физический размер экрана - Программирование Android
Пишу на OpenGL ES DisplayMetrics metrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metrics); Затем...

Размер экрана без шапки - Программирование Android
Создаю диалог вручную. Нужно знать точный размер экрана без учета панели с батареей, вай-фаем, связью, иконками... Как узнать полный...

Узнать доступные координаты (размер экрана) - Программирование Android
Всем привет. Мне нужно в программе сделать случайное перемещение ImageButton, сейчас у меня заданы жесткие координаты которые подобраны...

RecyclerView создает Item на размер экрана, как исправить? - Программирование Android
Аномалии, сменил версию RecyclerView с 21.0.+ на 23.3.0. Теперь он создает 1 элемент на весь размер экрана. Т.е элемент CardView создается...


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

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

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