Страница 1 из 1
Размеры различных экранов
Добавлено: 28 янв 2015, 12:49
alexmx
Доброго времени суток.
Пишу кастомизированный view на весь экран. При различных экранах хочу определить коэффициент от эталонного размера к используемому.
Концептуально это логично???
Re: Размеры различных экранов
Добавлено: 28 янв 2015, 13:08
altwin
Если это игра то пишется она не средствами sdk и вопросов быть не может.
Обычное активити делается full screen путем установки соответствующего флага, либо темы. Единственное что необходимо это кастомизировать view элементы под указанные размеры
A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
ровно также вы можете просто подготовить различные layout.
Получить размеры экрана можно к примеру так -
http://stackoverflow.com/a/6589124/2611075 , но зачем оно вам надо?
Re: Размеры различных экранов
Добавлено: 28 янв 2015, 13:16
alexmx
altwin писал(а):Если это игра то пишется она не средствами sdk и вопросов быть не может.
Обычное активити делается full screen путем установки соответствующего флага, либо темы. Единственное что необходимо это кастомизировать view элементы под указанные размеры
A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
ровно также вы можете просто подготовить различные layout.
Получить размеры экрана можно к примеру так -
http://stackoverflow.com/a/6589124/2611075 , но зачем оно вам надо?
Это не игра. Но содержит достаточное количество анимированных объектов, так же есть зависимость с векторами. Собственно все координаты я получаю из векторов.
Re: Размеры различных экранов
Добавлено: 28 янв 2015, 13:24
altwin
Используйте независимые единицы измерения. dp или sp.
в любом случае по ссылке выше показанно как получить размер экрана и вы всегда к примеру можете сохранить значение в константу и использовать для расчетов, но подобное решение должно быть последним в списке варриантов.
Re: Размеры различных экранов
Добавлено: 28 янв 2015, 13:28
alexmx
В смысле получить допустим количество dp на экране, а потом определять свои переменные?
Re: Размеры различных экранов
Добавлено: 28 янв 2015, 13:30
altwin
alexmx писал(а):В смысле получить допустим количество dp на экране, а потом определять свои переменные?
dp - вы должны использовать для размеров своих объектов, а android сам разберется как отобразить его одинаково для экранов разного размера.
http://startandroid.ru/ru/materialy/pam ... en-density
К примеру вы можете просто создать вложенный layout с "резиновым" размером в 90% экрана и рисовать в рамках его границы, варриантов может быть масса, главное пытаться избежать любых фиксированных расчетов, поскольку очень много не стандартных экранов и вы никогда не угадаете какие баги могут вылезти.
Re: Размеры различных экранов
Добавлено: 28 янв 2015, 13:42
alexmx
Это в принципе то же самое что я и предлагал. В любом случае мне возвращаться к пикселям.
Так как сюда dp не подсунешь напрямую:
придется писать что то вроде
Код: Выделить всё
//переводим dp в пиксели
public float convertDpToPixel(float dp,Context context){
Resources resources = context.getResources();
DisplayMetrics metrics = resources.getDisplayMetrics();
return dp * (metrics.densityDpi/160f);
}