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

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

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

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

27.02.2014, 13:17. Просмотров 696. Ответов 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, то рамка изменялась с сохранением пропорции
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 13:17     Размер рамки изображения по размеру экрана устройства
Посмотрите здесь:
Android Расположение элементов экрана пропорционально его размеру
Как масштабировать нарисованное на холсте по размеру экрана? android.graphics.Canvas Android
Android Как подгонять размер диалоговых окон по размер экрана?
Определение размеров экрана устройства Android
Цвет пикселя экрана android-устройства Android
Android Как программно взять диагональ экрана андроид устройства?
Android Физический размер экрана
Размер экрана без шапки Android
Android Узнать доступные координаты (размер экрана)
Android RecyclerView создает Item на размер экрана, как исправить?
Android Размер изображения на разных телефонах
Android Изменить размер изображения под телефон

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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