Расчет плотности экрана в Android

Может кто-нибудь подсказать, как Android считает плотность экрана?

Моя проблема в том, что у меня есть устройство (ODYS Space) с разрешением 480x800 и диагональю экрана 7". Если я рассчитаю его плотность, то получу значение 133 DPI, но Android (2.2 и 2.3 тоже) сообщает о нем как об устройстве со "СРЕДНЕЙ" плотностью (160 DPI).

Я борюсь с поддержкой многоэкранности, поэтому я предполагал, что 133 DPI будет скорее сообщаться как "LOW", чем как "MEDIUM", так что теперь мой макет экрана выглядит довольно глупо на этом устройстве со средней плотностью.

Я проверяю устройство с помощью такого кода:

DisplayMetrics dMetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dMetrics);  
int d=dMetrics.densityDpi;

Если я запускаю этот код на виртуальном устройстве, настроенном (480x800/7" и 133 DPI), то я получаю плотность = 120.

На реальном устройстве почему вместо этого написано 160?

6
задан Peter O. 15 September 2014 в 08:17
поделиться