2012-03-20 31 views
22

He este problema, consulte el Seguimiento de la pila:Uso de recursos dibujable

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

Mi archivo XML se parece a:

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

btn_1 es otro archivo XML en recursos dibujable cuando estoy usando una imagen (*. png) en lugar de xml dibujable está bien.

¿Puedo utilizar un recurso dibujable como src en mapa de bits? Por si acaso este es mi archivo btn_1.xml. No funciona incluso si el archivo btn_1 no tiene elementos.

<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. pero hmm. ¿qué debería hacer? Necesito ubicar un recurso xml dibujable sobre otro, pero mi recurso está escalando ... ¿qué debo hacer para evitar escalar un recurso xml dibujable? y no tienen parámetro de gravedad ... –

Respuesta

22

no se puede tener un xml dibujable como fuente de mapa de bits. Porque, por ejemplo, si fuera posible, podría crear un agujero negro por error al llamar xml a sí mismo.

vamos a suponer, que tiene un xml dibujable Un que tiene un mapa de bits whos fuente es estirable B. Pero en drawable B, tiene un mapa de bits cuya fuente es dibujable A. Esto creará un bucle circular que no se puede resolver. Es por ello que es necesario proporcionar una imagen como fuente de mapa de bits para evitar cualquier confusión

+0

Gracias por este Waqas, tengo exactamente la misma pregunta (pero no se fusionó porque está marcada como respondida) - pero estoy pidiendo la solución: http: // stackoverflow. com/questions/10055892/prevention-shapes-scaling-in-a-layeredlist-with-or-without-using-bitmap – ataulm

+10

@waqaslam, su respuesta es correcta: no puede tener un XML dibujable como fuente para un mapa de bits etiqueta. Lo que encuentro confuso es su explicación: la referencia circular puede ocurrir en cualquier contexto al hacer referencia a recursos XML. Me parece que es una restricción de diseño en el marco –

31

Para evitar el error: #XXX línea de archivo XML binario: requiere un atributo src válida

dentro de una capa de vinos, lo uso:

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

en lugar de:

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

, pero ¿qué ocurre si necesito tileMode? – Gudin

+7

Sí, ¿y si necesito tileMode, tinte o cualquiera de los muchos otros atributos en mapa de bits ...? –

+0

¡Es una solución real para mí! –

Cuestiones relacionadas