2012-05-02 7 views
6

Desidero fornire le stesse risorse immagine/drawable sia a drawable-xlarge-mdpi AND drawable-sw600dp-mdpi.Risorse per drawable-xlarge-mdpi AND drawable-sw600dp-mdpi senza duplicazione

Sembra che l'unico modo per farlo sia creare due cartelle sotto res/e copiare lo stesso insieme di risorse in ciascuna cartella.

Con i layout possiamo eseguire l'aliasing. Cioè la creazione di un file chiamato layout.xml nella cartella valori con qualificazioni specifiche e gli elementi che aggiungono per puntare a un singolo file di layout per entrambe le qualificazioni:

  • valori xlarge-\ values.xml
  • valori-sw600dp \ valori. xml

Il contenuto di entrambi i file sarebbe qualcosa di simile:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <item name="activity_shows" type="layout">@layout/activity_shows_tablet</item> 
</resources> 

(dispositivi di corrispondenza xlarge o dispositivi corrispondenza sw600dp sarebbe ora utilizzare activity_shows_tab let.xml come file di layout per "activity_shows")

Esiste un approccio simile per i drawable?

risposta

13

Esiste un approccio simile per i drawable?

Dovrebbe funzionare esattamente come avviene per i layout

messo png risorse nella cartella predefinita

res/drawable/largescreen.png 
res/drawable/smallscreen.png 

creare .xml risorse che fanno riferimento alla png s

res/drawable/image.xml 
res/drawable-xlarge-mdpi/image.xml 
res/drawable-sw600dp-mdpi/image.xml 

dove image.xml è qualcosa li ke (documentation)

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
    android:src="@drawable/largescreen" /> 

e quindi utilizzare la risorsa XML come si può usare il png direttamente

<ImageView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content" 
    android:src="@drawable/image" /> 
Problemi correlati