¿Obtener la densidad de la pantalla mediante programación en Android?

Resuelto Praveen asked hace 54 años • 21 respuestas

¿Cómo obtener la densidad de la pantalla mediante programación en Android?

Quiero decir: ¿Cómo encontrar los ppp de pantalla del dispositivo actual?

Praveen avatar Jan 01 '70 08:01 Praveen
Aceptado

Puede obtener información sobre la pantalla desde la estructura DisplayMetrics :

DisplayMetrics metrics = getResources().getDisplayMetrics();

Aunque Android no utiliza un mapeo directo de píxeles, utiliza un puñado de valores cuantificados de píxeles independientes de la densidad y luego los escala al tamaño real de la pantalla. Entonces la metrics.densityDpipropiedad será una de las constantes DENSITY_xxx( 120, 160, 213, 240, o dpi).320480640

Si necesita la densidad de píxeles LCD real (tal vez para una aplicación OpenGL), puede obtenerla en las propiedades metrics.xdpiy metrics.ydpipara densidad horizontal y vertical respectivamente.

Si su objetivo es niveles API anteriores a 4. La metrics.densitypropiedad es un factor de escala de punto flotante de la densidad de referencia (160 ppp). metrics.densityDpiSe puede calcular el mismo valor proporcionado ahora por

int densityDpi = (int)(metrics.density * 160f);
joshperry avatar Jul 02 '2010 14:07 joshperry

Esto también funciona:

 getResources().getDisplayMetrics().density;

Esto te dará:

0,75 - ldpi

1.0 - mdpi

1.5 - hdpi

2.0 - xhdpi

3.0 - xxhdpi

4.0 - xxxhdpi

ingrese la descripción de la imagen aquí

ref: densidad

ingrese la descripción de la imagen aquí

referencia 2

Blundell avatar Jun 08 '2012 11:06 Blundell
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

switch(metrics.densityDpi) {
     case DisplayMetrics.DENSITY_LOW:
         break;

     case DisplayMetrics.DENSITY_MEDIUM:
         break;

     case DisplayMetrics.DENSITY_HIGH:
         break;
}

Esto funcionará en el nivel API 4 y superior.

Mitul Nakum avatar Mar 16 '2011 09:03 Mitul Nakum