Você pode obter informações sobre a exibição na estrutura DisplayMetrics :
DisplayMetrics metrics = getResources().getDisplayMetrics();
Embora o Android não use um mapeamento de pixel direto, ele usa vários valores quantificados de Density Independent Pixel e, em seguida, é dimensionado para o tamanho real da tela. Assim, a metrics.densityDpi
propriedade será uma das DENSITY_xxx
constantes ( 120
, 160
, 213
, 240
, 320
, 480
ou 640
dpi).
Se você precisar da densidade real de pixels em LCD (talvez para um aplicativo OpenGL), poderá obtê-la nas propriedades metrics.xdpi
e metrics.ydpi
para densidade horizontal e vertical, respectivamente.
Se você estiver direcionando os Níveis da API anteriores a 4. A metrics.density
propriedade é um fator de escala de ponto flutuante da densidade de referência (160 dpi). O mesmo valor agora fornecido por metrics.densityDpi
pode ser calculado
int densityDpi = (int)(metrics.density * 160f);
getDisplayMetrics().xdpi
, que deve retornar o dpi real do dispositivo. Observe que esse valor não é definido corretamente de maneira consistente entre os dispositivos pelos fabricantes, portanto você não pode usá-los . Triste, mas verdadeiro: as informações sobre dpi reais não estão disponíveis . Fonte: groups.google.com/d/msg/android-developers/g56jV0Hora0/…