Может ли кто-нибудь сказать мне, как Android подсчитывает плотность экрана?Расчет плотности экрана Android
У меня есть устройство (ODYS Space) с разрешением 480x800 и с диагональю 7 дюймов. Если я вычислил его плотность, я получаю значение 133 DPI, но Android (2.2 и 2.3 тоже) сообщает об этом как «MEDIUM «Плотное устройство (160 DPI).
Я борюсь с многоэкранной поддержкой, поэтому я предположил, что 133 DPI будут сообщаться как« LOW », чем« MEDIUM », так что теперь мой макет экрана выглядит довольно глупо на этом носителе с сообщением об этом.
проверить устройство с кодом, как это:
DisplayMetrics dMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dMetrics);
int d=dMetrics.densityDpi;
Если я запустил этот код на настроенном виртуальном устройстве (480x800/7 "и 133 DPI), тогда я получил плотность = 120.
На настоящем устройстве, почему он говорит 160 вместо этого?
Если вы ищете щедрость, см. Ответ Питера О. и мой комментарий ниже. Главное здесь - то, как Android фактически вычисляет плотность, а не как извлекает настройки. Например, где находится отсечка между LDPI и MDPI, MDPI и HDPI и т. Д. ... почему заданное число округляется до верхней плотности, а не от нижней соседней плотности и т. Д. Опять же, намек на ответ можно увидеть в редакторе AVD-устройств, но до сих пор я не смог найти детерминированный, определенный, правильный ответ. – davidcesarino
DPI - Устройство независимый пиксель Вы не можете иметь собственные значения, потому что есть starndards 0,75 - ldpi - 120 точек на дюйм 1,0 - MDPI - 160 точек на дюйм 1,5 - ИПЧР - 240 точек на дюйм 2,0 - xhdpi - 320 точек на дюйм 3,0 - xxhdpi - 480 dpi 4.0 - xxxhdpi - 640 dpi –