Quiero comprobar esto para buscar diferentes imágenes por internet. ¿Como hacer eso?¿Cómo comprobar que un dispositivo Android es una pantalla HDPI o una pantalla MDPI?
Respuesta
density = getResources().getDisplayMetrics().density;
// return 0.75 if it's LDPI
// return 1.0 if it's MDPI
// return 1.5 if it's HDPI
// return 2.0 if it's XHDPI
// return 3.0 if it's XXHDPI
// return 4.0 if it's XXXHDPI
Puede comprobar la densidad de pantalla con:
switch (getResources().getDisplayMetrics().densityDpi) {
case DisplayMetrics.DENSITY_LOW:
// ...
break;
case DisplayMetrics.DENSITY_MEDIUM:
// ...
break;
case DisplayMetrics.DENSITY_HIGH:
// ...
break;
case DisplayMetrics.DENSITY_XHIGH:
// ...
break;
}
EDITAR Tenga en cuenta que a medida que evoluciona Android, otros valores deben ser incluidos en los switch
casos. A partir de esta edición, esto incluye DisplayMetrics.DENSITY_TV
y DisplayMetrics.DENSITY_XXHIGH
. Consulte the docs para obtener la información más reciente; No voy a molestarme en mantener esta respuesta.
densityDpi no se puede resolver – virsir
Se supone que existe en SDK nivel 4 (plataforma 1.6) y superior. ¿Qué nivel de SDK estás usando? (En SDK 3, puede usar 'density' como lo sugiere SteD.) –
Necesito apuntar a platform1.5. La respuesta a continuación puede ser adecuada para mi solicitud. – virsir
En algunos dispositivos (el mío es Galaxy Tab3), tanto la densidad como la densidadDpi devuelven valores extraños como 1.33 (densidad), 213 (densidadDpi). Así que mi solución es añadir estos bandera:
< tipo de elemento = " bool " name = " is_mdpi " > [BOOL] </artículo >
< elemento type = " bool " name = " is_hdpi " > [bool] </item >
< item type = " bool " name = " is_xhdpi " > [bool] </artículo >
< artículo type = " bool " name = " is_xxhdpi " > [bool] </artículo >
-4 values.xml archivos, colóquelos debajo de res/values- [xxx]/folders correspondientes.
213dpi es una densidad conocida, "tvdpi": http://developer.android.com/guide/practices/screens_support.html#qualifiers –
De las respuestas anteriores, les combinada y creé la siguiente función:
public static String getDeviceDensity(Context context){
String deviceDensity = "";
switch (context.getResources().getDisplayMetrics().densityDpi) {
case DisplayMetrics.DENSITY_LOW:
deviceDensity = 0.75 + " ldpi";
break;
case DisplayMetrics.DENSITY_MEDIUM:
deviceDensity = 1.0 + " mdpi";
break;
case DisplayMetrics.DENSITY_HIGH:
deviceDensity = 1.5 + " hdpi";
break;
case DisplayMetrics.DENSITY_XHIGH:
deviceDensity = 2.0 + " xhdpi";
break;
case DisplayMetrics.DENSITY_XXHIGH:
deviceDensity = 3.0 + " xxhdpi";
break;
case DisplayMetrics.DENSITY_XXXHIGH:
deviceDensity = 4.0 + " xxxhdpi";
break;
default:
deviceDensity = "Not found";
}
return deviceDensity;
}
Ahora, el dispositivo que desea obtener la información de densidad y en qué carpeta se va a utilizar, sólo tiene que añadir el método anterior en la que la actividad y añadir la siguiente línea en onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
Log.d("Screen Density: ", Helper.getDeviceDensity(this));
}
- 1. Problema con el emulador de Eclipse Android: ejecuta WVGA (hdpi) como una pantalla mdpi
- 2. Drawable-hdpi, Drawable-mdpi, Drawable-ldpi Android
- 3. ¿Cómo determinar si un dispositivo Android tiene una pantalla táctil?
- 4. resoluciones de pantalla Android
- 5. Android hdpi/mdpi/ldpi para la carpeta Valores?
- 6. ¿Qué teléfonos Android tienen pantalla grande? Tamaños de pantalla
- 7. cómo detectar si la pantalla es capacitiva o resistente en un dispositivo Android?
- 8. Tamaños de pantalla de Android en píxeles para ldpi, mdpi, hpdi?
- 9. cómo abrir una nueva pantalla en Android?
- 10. cómo determinar qué tocó la pantalla de mi dispositivo Android?
- 11. Tamaños y tamaños de pantalla de Android
- 12. Android: ¿cómo comprobar si se está tocando la pantalla?
- 13. ¿Cómo obtener la resolución de pantalla de su dispositivo Android ...?
- 14. Cómo usar 9 imágenes de parche en Android para diferentes-2 densidades (como mdpi, ldpi, hdpi).?
- 15. Android: 'Pantalla de bienvenida' una sola vez
- 16. Captura de pantalla de la pantalla actual
- 17. Cómo encontrar que la pantalla está bloqueada en android
- 18. Captura de pantalla de Android en el dispositivo rooteado
- 19. Captura de pantalla programática en dispositivo móvil
- 20. ¿Cómo evitar que la pantalla de un dispositivo Android se apague durante la ejecución de una actividad?
- 21. Tomando captura de pantalla de una pantalla de dispositivo usando C#
- 22. [Pantalla de bienvenida] ¿Cómo mostrar una imagen en pantalla completa?
- 23. determinar los tamaños de imagen para múltiples tamaños de pantalla android/densidades
- 24. ¿Cómo mostrar en pantalla la posición del cursor en una tableta o teléfono inteligente Android?
- 25. ¿Cómo se puede generar una pantalla de carga en Android?
- 26. Cómo navegar de una pantalla a otra pantalla
- 27. Android: evitar que la pantalla se apague
- 28. Cómo crear una pantalla deslizante (como en Tweetdeck) en Android?
- 29. ¿Cómo obtener el tamaño de pantalla del dispositivo?
- 30. ¿Por qué Android busca recursos QVGA en el orden incorrecto mdpi> hdpi> ldpi?
los valores de densidad descritos en: http://developer.android.com/guide/practices/screens_support.html – esilver
@SteD es posible saber lo que es un dispositivo ¿va a ser? por ejemplo, considere el caso en que el dpi es 140 en el medio del rango del cucharón? ¿redondea hacia abajo o hacia arriba? – wal
tvdpi es aproximadamente 1.3 –