在我的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
有人可以帮助我吗?
答案 0 :(得分:1)
我认为正确的语法是?attr / descriptor_bg 。
不幸的是,这可能无法解决您的问题,因为XML drawables不支持主题属性。在L-preview版本中,这是fixed。
答案 1 :(得分:0)
我想你需要坚持使用单一的格式标识符,例如:
<attr name="descriptor_bg" format="color" />
它应该自动从RGB值或参考中转换颜色。