66

この問題があります。トレーススタックを参照してください。

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ファイルです。xmlドローアブルの代わりにimage(*。png)を使用している場合は、問題ありません。

ドローアブルリソースをsrcからbitmapとして使用できますか?念のためここに私の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>
4

4 に答える 4

116

エラーを回避するには:バイナリXMLファイルの行#XXX:有効なsrc属性が必要です

レイヤーリスト内で、以下を使用します。

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

それ以外の:

<item>
  <bitmap android:src="@drawable/image"/>
</item>
于 2014-06-27T11:57:13.057 に答える
55

ビットマップのソースとしてxmlドローアブルを使用することはできません。たとえば、可能であれば、xmlを呼び出して誤ってブラックホールを作成する可能性があるためです。

ソースがドローアブルBであるビットマップを持つxmlドローアブルAがあるとします。しかし、ドローアブルBでは、ソースがドローアブルAであるビットマップがあります。これにより、解決できない循環ループが作成されます。そのため、混乱を避けるために、ビットマップのソースとして画像を提供する必要があります。

于 2012-03-20T14:43:55.030 に答える
12

最小SDK: API 23

drawable / yourDrawable.xml

次のコードでは、最初のアイテムとして背景としてベクトルがあり、2番目のアイテムでは背景の上にカスタムサイズのロゴが中央に配置されています。

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

注: API 23からの今日の累積分布は84.9%です。したがって、より低いAPIの代替案を検討するかもしれません

GL

ソース

于 2019-08-01T13:12:52.840 に答える
3

色合い属性を変更するためにセレクターを使用する場合は、色のみのセレクターを作成します。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/white" android:state_pressed="true" />
    <item android:color="@color/white" android:state_activated="true" />
    <item android:color="@color/green" />
</selector>

そして、android:tintで色として使用します

<ImageView
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:tint="@color/tint_menu_item"
    android:src="@drawable/ic_menu_home" />
于 2020-09-08T22:03:50.470 に答える