web-dev-qa-db-ja.com

ドローアブルリソースの使用

私はこの問題を抱えています、トレーススタックを見てください:

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ドローアブルの代わりに画像(* .png)を使用している場合は問題ありません。

描画可能なリソースをビットマップへの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>
54

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

あなたがXMLのドローアブルを持っているとしましょう[〜#〜] a [〜#〜]これは、ソースがドローアブルであるビットマップを持っています[〜#〜] b [〜#〜]。しかし、ドローアブル[〜#〜] b [〜#〜]の場合、ソースがドローアブルであるビットマップ[〜#〜] a [〜#〜]があります。これにより、解決できない循環ループが作成されます。そのため、混乱を避けるために、ビットマップのソースとして画像を提供する必要があります

37
waqaslam

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

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

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

の代わりに:

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

このエラーが発生しました(<bitmap> requires a valid src attribute)ビットマップにvector imageを使用する場合。

私の解決策は
-@Santiago Rivasの回答を使用
-または別の画像を使用します(ベクター画像ではありません)

0
Linh