2010-09-14 11 views
5

Mi sento come se mi mancasse qualcosa.Android - Fornire risorse alternative non funziona?

Nella mia applicazione, ho deciso di fornire risorse estraibili alternative e file di layout alternativi. La mia struttura è la seguente:

res/drawable-hdpi/filename.png
res/drawable-MDPI/filename.png
res/drawable-ldpi/filename.png

res/layout piccolo /layout.xml
res/layout di grandi dimensioni/layout.xml
res/layout/layout.xml

ho creato tre differenti emulatori: uno con il HVGA di default, uno con QVGA, e una con WVGA800

Non sembra raccogliere quelle risorse/layout alternativi in ​​base alla dimensione/densità dello schermo, o forse non posso proprio dirlo?

C'è qualche modo, oltre all'utilizzo di un dispositivo per ciascuna dimensione specifica, per testarlo? O mi manca qualcosa di importante?

Un'altra domanda, quanto bene i drawable di scala Android se non esistono risorse alternative?

risposta

1

Alcuni punti, in nessun ordine particolare:

  • layout sono riportate le dimensioni dello schermo e quindi di grandi, medie, piccole e drawable sono legati alla densità e quindi hdpi, mdpi, ldpi. È ovvio per alcuni e non così facile da capire agli altri.
  • Leggere attraverso this e creare i dispositivi di emulazione come specificato in questa pagina, ricontrollare per assicurarsi di averli giusti.
  • Ora inizia con un semplice layout e testalo sullo skin del dispositivo predefinito, quindi aggiungi layout-320x480, prova, ripeti per altre dimensioni. Se si utilizza layout-large/small, ecc., Ricordarsi di aggiungere le linee corrette a AndroidManifest.xml <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizable="true" android:anyDensity="true" />
  • Un modo semplice per eseguire questa operazione è avere una cartella layout.xml e drawables predefinita, e per diverse dimensioni avere layout- Cartelle 320x480.xml ecc. E densità differenti abbiamo cartelle drawables-hdpi, ecc. Se assicurati di impostare android:anyDensity="false" /> nel file manifest, il portatile otterrà layout e risorse corretti in base ai suoi attributi.

Se si imposta android:anyDensity="false" /> nel file manifesto del portatile gestisce il dimensionamento dei drawable, tipicamente prendendo le attività dalla cartella drawable e ridimensionamento.

+0

buoni punti. Solo per notare che secondo [i documenti] (http://developer.android.com/guide/topics/manifest/supports-screens-element.html) 'android: resizable' non dovrebbe essere usato nel manifest. –

1

In 3.2 sopra versione per sviluppatori Android sono stati rilasciati due cose nuove per i tablet

layout-sw600dp-land 
layout-sw720-land