1

私のでは、次のようattr.xmlに定義しました。descriptor_bg

</declare-styleable>    
    <attr name="descriptor_bg" format="reference|color" />
    </declare-styleable>

とでstyle.xml

<style name="Theme_blue">
    <item name="descriptor_bg">@android:color/black</item>
    <item name="android:windowNoTitle">true</item>
</style> 

上記の属性を次のように使用しました:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
    android:angle="90" />
<solid android:color="@attr/descriptor_bg"/>
<stroke
    android:width="2dp"
    android:color="@color/blue_stroke_bg" /> 

しかし、次のような例外が発生しています。

android.content.res.Resources$NotFoundException: File res/drawable-mdpi/descriptor_bg.xml

ドローアブル リソース ID #0x7f020006 から

java.lang.UnsupportedOperationException: Can't convert to color: type=0x1
File res/drawable-mdpi/descriptor_bg.xml from drawable resource ID #0x7f020006

誰でも私を助けてもらえますか?

4

2 に答える 2

2

正しい構文は?attr/descriptor_bgだと思います。

残念ながら、XML ドローアブルではテーマ属性がサポートされていないため、これでおそらく問題は解決されません。ただし、これはL-preview リリースで修正されました。

于 2014-09-30T13:11:27.167 に答える
0

次のような単一の形式識別子に固執する必要があると思います。

<attr name="descriptor_bg" format="color" />

RGB値または参照から色を自動的に変換する必要があります。

于 2013-04-04T09:59:15.093 に答える