¿Alguien puede decirme cómo Android cuenta la densidad de la pantalla?Cálculo de la densidad de la pantalla de Android
Mi problema es que tengo un dispositivo (ODYS Space) con resolución de 480x800 y con pantalla diagonal de 7 " Si calculo su densidad, recibo un valor de 133 DPI pero Android (2.2 y 2.3 también) lo informa como" MEDIUM "dispositivo de densidad (160 DPI).
Estoy peleando con soporte multipantalla, así que supuse que 133 DPI aparecerían más como" BAJO "que" MEDIO ", por lo que ahora el diseño de mi pantalla parece bastante estúpido en este dispositivo medio.
puedo comprobar el dispositivo con un código como éste:
DisplayMetrics dMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dMetrics);
int d=dMetrics.densityDpi;
Si ejecuto ese código en un dispositivo virtual configurado (480x800/7 "y 133 DPI) obtuve densidad = 120.
En el dispositivo real, ¿por qué dice 160 en su lugar?
Si está buscando la recompensa, vea la respuesta de Peter O. y mi comentario debajo. El punto principal aquí es cómo Android realmente calcula la densidad, no cómo recupera la configuración. Por ejemplo, dónde está el límite entre LDPI y MDPI, MDPI y HDPI, y así sucesivamente ... por qué un número dado se redondea a la densidad superior y no a la densidad adyacente inferior, y así sucesivamente. Nuevamente, se puede ver una pista de la respuesta en el Editor de dispositivos AVD, pero hasta ahora no he podido encontrar una respuesta determinista, cierta y correcta. – davidcesarino
DPI - Dispositivo pixel independiente No se puede tener valores personalizados porque hay starndards 0,75 - LDPI - 120 dpi 1,0 - MDPI - 160 dpi 1,5 - IPAP - 240 dpi 2,0 - xhdpi - 320 dpi 3,0 - xxhdpi - 480 dpi 4.0 - xxxhdpi - 640 dpi –