Using drawable resources

只愿长相守 提交于 2019-11-26 11:15:43

问题


I have this problem, see the trace stack:

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

My xml file looks like:

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

btn_1 is another xml file in drawable resources When i\'m using an image(*.png) instead of xml drawable it\'s ok.

Can I use a drawable resource as src to bitmap? Just in case here is my btn_1.xml file. It doesn\'t work even if btn_1 file have no items.

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

回答1:


You cant have an xml drawable as source for bitmap. Because for example if it was possible, then it could mistakenly create a black-hole by calling xml to itself.

Lets suppose, you have an xml drawable A which has a bitmap whos source is drawable B. But in drawable B, it has a bitmap whos source is drawable A. This will create a circular loop which cant be resolved. That is why you need to provide an image as a source for bitmap to avoid any confusion




回答2:


To avoid error: Binary XML file line #XXX: requires a valid src attribute

inside a layer-list, use:

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

instead of:

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



回答3:


drawable/yourDrawable.xml

In the following code I have a vector as a background as the first item and in the second item centered logo with a custom size above the background.

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

    </item>
    <item
        android:width="200dp"
        android:height="60dp"
        android:gravity="center_vertical|center_horizontal"
        android:drawable="@drawable/logo_in_svg_2"/>
</layer-list>


来源:https://stackoverflow.com/questions/9788726/using-drawable-resources

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!