Использование доступных ресурсов

У меня есть эта проблема, см. Стек трассировки:

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

Мой XML-файл выглядит так:

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

Btn_1 – еще один xml-файл в ресурсах с возможностью рисования. Когда я использую изображение (*. Png) вместо xml drawable, это нормально.

Можно ли использовать ресурс drawable как src для растрового изображения? На всякий случай вот мой файл btn_1.xml. Он не работает, даже если файл btn_1 не имеет элементов.

 <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> 

Solutions Collecting From Web of "Использование доступных ресурсов"

Вы не можете иметь xml, который можно использовать как источник для растрового изображения. Поскольку, например, если это было возможно, тогда это могло бы ошибочно создать черную дыру, вызвав xml для себя.

Предположим, у вас есть xml drawable A, у которого есть растровый whos-источник, который можно вытащить B. Но в drawable B , у него есть растровый источник, который доступен для рисования A. Это создаст круговой цикл, который не может быть разрешен. Вот почему вам нужно предоставить изображение в качестве источника для растрового изображения, чтобы избежать путаницы

Чтобы избежать ошибки: двоичная строка XML-файла #XXX: требуется действительный атрибут src

Внутри списка слоев используйте:

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

вместо:

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