@argamidon

Android: Почему папка values-sw320dp не используется вместе с ldpi?

Как я понимаю, swdp вычисляется так: берется наименьшая сторона и делится на dpi экрана. Пробовал запускать на эмуляторе ldpi плотностью , 240*320 пикс. Если я прав, то smallestWidth для этого эмулятора 240px/0.75 = 320dp. Но почему-то значения берутся из папки values-sw240dp, а не values-sw320dp. В хелпе сказано :

Some values you might use here for common screen sizes:
320, for devices with screen configurations such as:
-240x320 ldpi (QVGA handset)
-320x480 mdpi (handset)
-480x800 hdpi (high density handset)
и я не понимаю почему 240*320 пикс , ldpi устройство не берет нужные значения из нужной папки. Андроид 4,0. Кстати говоря, mdpi, hdpi, xhdpi c другими разрешениями работает нормально - вычисляет dp как положено.
  • Вопрос задан
  • 3019 просмотров
Пригласить эксперта
Ответы на вопрос 1
JaLoveAst1k
@JaLoveAst1k
На самом деле я бы не полагался в таких тонких вопросах на эмуляторы. Он ведь может скейлиться на экране компьютера, да и просто работать "немного не так".

Хотя подобного устройства с Андроидом 3.2+ и таким дисплеем у меня нет (они вообще существуют? о_О), можно предположить, что ldpi это ~120dpi, т.е., насколько я понимаю, может быт чуть больше и чуть меньше. Более того, если сверху оно ограничено 120 + (160 - 120) / 2 = 140dpi, то снизу и вовсе ни о чем сказать наверняка нельзя. Поправьте, если не прав.

Ну и, собственно, попробуйте вывести куда-нибудь:
DisplayMetrics metrics = getResources().getDisplayMetrics();
metrics.densityDpi - оно будет равно одной из констант, именуемых как DENSITY_(число).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы