web-dev-qa-db-fra.com

Utiliser des ressources déductibles

J'ai ce problème, voir la pile de trace: 

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

Mon fichier xml ressemble à:

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

btn_1 est un autre fichier xml dans les ressources pouvant être dessinées Quand j'utilise une image (*. png) au lieu de xml pouvant être dessiné, tout va bien.

Puis-je utiliser une ressource dessinable en tant que source sur bitmap? Juste au cas où voici mon fichier btn_1.xml. Cela ne fonctionne pas même si le fichier btn_1 ne contient aucun élément.

<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>
39
Alexander Gubarets

Vous ne pouvez pas avoir un xml drawable comme source pour bitmap. Parce que, par exemple, si cela était possible, il pourrait créer par erreur un trou noir en appelant xml.

Supposons que vous ayez un fichier XML dessinéAqui a une image bitmap dont la source est dessinéB. Mais dans drawableB, il a un bitmap dont le source est drawableA. Cela créera une boucle circulaire qui ne peut pas être résolue. C'est pourquoi vous devez fournir une image en tant que source d'images bitmap pour éviter toute confusion.

33
waqaslam

Pour éviter les erreurs: La ligne de fichier XML binaire #XXX: requiert un attribut src valide.

dans une liste de couches, utilisez:

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

au lieu de:

<item>
  <bitmap Android:src="@drawable/image"/>
</item>
62
Santiago Rivas

J'ai eu cette erreur (<bitmap> requires a valid src attribute) lorsque j'utilise image vectorielle pour bitmap. 

Ma solution est
- Utilisez la réponse de @Santiago Rivas
- Ou utilisez une autre image (pas d'image vectorielle)

0
Linh