2012-02-13 19 views
9

Desidero sapere quale risorsa estraibile viene utilizzata mentre si esegue l'applicazione da ldpi, mdpi, hdpi o xhdpi.Come scoprire quale risorsa drawble viene utilizzata?

+0

[Date un'occhiata a questo post] (http://stackoverflow.com/a/4766229/593709) –

+0

ho finito per creare un app per questo qualche tempo fa: https://play.google. com/negozio/apps/dettagli? id = com.roysolberg.android.developertools –

risposta

7

Si dovrebbe essere in grado di ottenere proprietà dello schermo del dispositivo come descritto here e successivamente determinare quali risorse vengono utilizzate in fase di esecuzione confrontando il risultato contro questa lista:

  • ldpi: schermi a bassa densità; circa 120 dpi.
  • mdpi: schermi a media densità (su HVGA tradizionale); circa 160 dpi.
  • hdpi: schermi ad alta densità; circa 240 dpi.
  • xhdpi: schermi ad alta densità; circa 320 dpi. Aggiunto in livello API 8
  • nodpi: può essere utilizzato per risorse bitmap che non si desidera ridimensionare in base alla densità del dispositivo.
  • tvdpi: Schermate da qualche parte tra mdpi e hdpi; circa 213 dpi. Questo non è considerato un gruppo di densità "primario". È in gran parte destinato ai televisori e la maggior parte delle app non dovrebbe averne bisogno: fornire risorse MDPI e HDPI è sufficiente per la maggior parte delle app e il sistema le ridimensionerà in base alle esigenze. Questo qualificatore è stato introdotto con livello di API 13.

Da queste informazioni è possibile dedurre la seguente, che potrebbe anche essere rilevanti per la tua domanda:

C'è un 3: ridimensionamento 8: 4: 6 rapporto tra le quattro densità primarie (ignorando la densità tvdpi). Quindi, una bitmap 9x9 in ldpi è 12x12 in mdpi, 18x18 in hdpi e 24x24 in xhdpi.

1

Questa non è una risposta esatta, ma avete dato un'occhiata a: http://developer.android.com/guide/practices/screens_support.html

ldpi: risorse per la bassa densità (ldpi) schermi (~ 120dpi)
MDPI: risorse per i media densità (MDPI) schermi (~ 160dpi)
hdpi: risorse per alta densità (hdpi) schermi (~ 240 dpi)
xhdpi: risorse per extra-alta densità (xhdpi) schermi (~ 320dpi)

Questi sono generale linee guida, e non sarà perfetto ma è un buon inizio.

4

Possiamo determinare questo conoscendo la densità dello schermo del dispositivo.

getResources().getDisplayMetrics().densityDpi 

Sarà sia DENSITY_LOW, DENSITY_MEDIUM o DENSITY_HIGH.

1

Aprire il file xml dalla cartella di layout. In fondo troverai la scheda grafica del layout. Lì sarai in grado di vedere la vista grafica del tuo file xml. Per l'angolo in alto a sinistra selezionare una risoluzione diversa per la quale si desidera testare il drawable. Aggiorna la vista di conseguenza.

0

Ecco un codice di esempio per trovarlo. Inserisci semplicemente alcuni drawable diversi in cartelle diverse e controlla quale immagine viene prelevata automaticamente dal dispositivo.

http://droidschools.com/archives/63

3

si deve arrivare prima densità del 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; 
} 
Problemi correlati