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.densityDpipropriedade será uma das DENSITY_xxxconstantes ( 120, 160, 213, 240, 320, 480ou 640dpi).
Se você precisar da densidade real de pixels em LCD (talvez para um aplicativo OpenGL), poderá obtê-la nas propriedades metrics.xdpie metrics.ydpipara densidade horizontal e vertical, respectivamente.
Se você estiver direcionando os Níveis da API anteriores a 4. A metrics.densitypropriedade é um fator de escala de ponto flutuante da densidade de referência (160 dpi). O mesmo valor agora fornecido por metrics.densityDpipode 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/…