2012-02-13 23 views
9

Quiero saber qué recurso dibujable se utiliza al ejecutar la aplicación que es de ldpi, mdpi, hdpi o xhdpi.¿Cómo saber qué recurso drawble se usa?

+0

[Tener un vistazo a este post] (http://stackoverflow.com/a/4766229/593709) –

+0

terminé creando una aplicación para eso hace algún tiempo: https://play.google. com/store/apps/details? id = com.roysolberg.android.developertools –

Respuesta

7

Usted debe ser capaz de obtener propiedades de la pantalla de su dispositivo como se describe here y, posteriormente, determinar qué se utilizan los recursos en tiempo de ejecución comparando el resultado en contra de esta lista:

  • LDPI: pantallas de baja densidad; aproximadamente 120dpi.
  • mdpi: Pantallas de densidad media (en HVGA tradicional); aproximadamente 160 ppp.
  • hdpi: Pantallas de alta densidad; aproximadamente 240 ppp.
  • xhdpi: Pantallas de alta densidad extra; aproximadamente 320 ppp. Agregado en API Nivel 8
  • nodpi: Esto se puede utilizar para recursos de mapa de bits que no desea escalar para que coincidan con la densidad del dispositivo.
  • tvdpi: pantallas en algún lugar entre mdpi y hdpi; aproximadamente 213 ppp. Esto no se considera un grupo de densidad "primario". Está destinado principalmente para televisores y la mayoría de las aplicaciones no deberían necesitarlo, ya que proporcionar recursos de mdpi y hdpi es suficiente para la mayoría de las aplicaciones y el sistema las escalará según corresponda. Este calificador se introdujo con el nivel API 13.

partir de esta información se puede deducir lo siguiente, que también podría ser relevante para su pregunta:

No es un 3: escala 8: 4: 6 relación entre las cuatro densidades primarias (ignorando la densidad de tvdpi). Entonces, un mapa de bits 9x9 en ldpi es 12x12 en mdpi, 18x18 en hdpi y 24x24 en xhdpi.

1

Ésta no es una respuesta exacta, pero ¿ha echado un vistazo a: http://developer.android.com/guide/practices/screens_support.html

LDPI: Recursos de baja densidad (LDPI) pantallas (~ 120 ppp)
mdpi: Recursos para la densidad media (MDPI) pantallas (~ 160dpi)
IPAP: Recursos para alta densidad (IPAP) pantallas (~ 240 ppp)
xhdpi: Recursos para alta densidad extra (xhdpi) pantallas (~ 320dpi)

Estos son generales directrices, y no será perfecto, pero es un buen comienzo.

4

Podemos determinar esto conociendo la densidad de la pantalla del dispositivo.

getResources().getDisplayMetrics().densityDpi 

Será ya sea DENSITY_LOW, DENSITY_MEDIUM o DENSITY_HIGH.

1

Abra el archivo xml de la carpeta de diseño. En la parte inferior, encontrará la pestaña de diseño gráfico. Allí podrá ver una vista gráfica de su archivo xml. En la esquina superior izquierda, seleccione una resolución diferente-diferente para la que desee probar dibujable. Actualizará la vista en consecuencia.

0

Aquí hay un código de muestra para encontrarlo. Simplemente coloque algunos dibujos diferentes en diferentes carpetas y verifique qué imagen recoge el dispositivo automáticamente.

http://droidschools.com/archives/63

3

usted tiene que conseguir primero la densidad de su dispositivo.

int density= getResources().getDisplayMetrics().densityDpi; 

switch(density) 
{ 
case DisplayMetrics.DENSITY_LOW: 
    Toast.makeText(context, "LDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_MEDIUM: 
    Toast.makeText(context, "MDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_HIGH: 
    Toast.makeText(context, "HDPI", Toast.LENGTH_SHORT).show(); 
    break; 
case DisplayMetrics.DENSITY_XHIGH: 
    Toast.makeText(context, "XHDPI", Toast.LENGTH_SHORT).show(); 
    break; 
}