¿Obtener la densidad de la pantalla mediante programación en Android?
¿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?
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.densityDpi
propiedad será una de las constantes DENSITY_xxx
( 120
, 160
, 213
, 240
, o dpi).320
480
640
Si necesita la densidad de píxeles LCD real (tal vez para una aplicación OpenGL), puede obtenerla en las propiedades metrics.xdpi
y metrics.ydpi
para densidad horizontal y vertical respectivamente.
Si su objetivo es niveles API anteriores a 4. La metrics.density
propiedad es un factor de escala de punto flotante de la densidad de referencia (160 ppp). metrics.densityDpi
Se puede calcular el mismo valor proporcionado ahora por
int densityDpi = (int)(metrics.density * 160f);
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
ref: densidad
referencia 2
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.