2012-03-20 16 views
22

ho questo problema, vedere lo stack trace:utilizzando le risorse disegnabili

E/AndroidRuntime(2410): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #5: <bitmap> requires a valid src attribute 

mio file XML assomiglia:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
    <item> 
     <bitmap android:src="@drawable/btn_1"/> 
    </item> 
</layer-list> 

btn_1 è un altro file XML di risorse disegnabili Quando sto usando un'immagine (*. png) invece di xml disegnabile va bene.

Posso utilizzare una risorsa estraibile come src in bitmap? Nel caso in cui ci sia il mio file btn_1.xml. Non funziona anche se il file btn_1 non ha elementi.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item android:drawable="@drawable/btn_arrow_bg_red"/> 
<item> 
    <bitmap 
     android:gravity="center" 
     android:src="@drawable/btn_arrow_white" /> 
</item> 
</layer-list> 
+0

thx. ma hmm. cosa dovrei fare? Ho bisogno di mettere una risorsa xml disegnabile sopra un'altra, ma la mia risorsa è in scala ... cosa devo fare per evitare di ridimensionare una risorsa xml disegnabile? e non hanno alcun parametro gravità ... –

risposta

22

non puoi avere un XML drawable come fonte di bitmap. Perché, ad esempio, se fosse possibile, potrebbe erroneamente creare un buco nero chiamando xml a se stesso.

Consente supporre, si dispone di un XML drawable Un che ha una bitmap di whos sorgente è disegnabile B. Ma in drawable B, ha una bitmap la cui fonte è estraibile A. Ciò creerà un ciclo circolare che non può essere risolto. Ecco perché è necessario fornire un'immagine come fonte di bitmap per evitare qualsiasi confusione

+0

Grazie per questo Waqas, ho la stessa identica domanda (ma non mi sono fusa perché è contrassegnata come risposta) - ma sto chiedendo la soluzione: http: // StackOverflow. it/questions/10055892/prevention-shapes-scaling-in-a-layeredlist-with-or-without-using-bitmap – ataulm

+10

@waqaslam, la tua risposta è corretta: non puoi avere un XML drawable come origine per una bitmap etichetta. Quello che trovo confuso è la tua spiegazione: il riferimento circolare può avvenire in qualsiasi contesto quando si fa riferimento alle risorse XML. Mi sembra che sia un vincolo di progettazione nel framework –

31

Per evitare l'errore: Binary linea di file XML #XXX: richiede un attributo src valida

all'interno di uno strato-list, l'uso:

<item android:drawable="@drawable/image" /> 

invece di:

<item> 
    <bitmap android:src="@drawable/image"/> 
</item> 
+6

ma cosa succede se ho bisogno di tileMode? – Gudin

+7

Sì, e se avessi bisogno di tileMode, tint o di uno degli altri molti molti attributi su bitmap ...? –

+0

È una soluzione reale per me !! –

Problemi correlati