Подтвердить что ты не робот

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

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

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, оно нормально.

Можно ли использовать ресурс для рисования в виде 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>
4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

вместо:

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