如何在android中添加一个主题属性到android:startColor in gradient drawable?

Kal*_*mah 5 android android-layout

根据android文档,android:startColor可以将属性作为值:

这也可以是对资源的引用(其形式为"@〔包:]类型:名称为")("?[包:] [类型:]名称"的形式)或主题属性包含该类型的值.

我试图为我的gradiant drawable添加一个属性,但是我得到一个错误.这是drawable的代码:

这是style.xml中的代码:

<style name="test" parent="android:Theme">
    <item name="android:startColor">#0b2749</item> 
    <item name="startColor">#0b2749</item>
</style>
Run Code Online (Sandbox Code Playgroud)

当我尝试运行活动时,我收到以下错误消息:

01-10 20:47:30.810: E/AndroidRuntime(7279): Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
Run Code Online (Sandbox Code Playgroud)

我尝试将?startColor更改为?attr/startColor并仍然遇到相同的错误.我还将主题应用于AndroidManifest.xml文件中的活动.

如何将主题属性添加到渐变可绘制的?

San*_*eer -1

看起来你刚刚在颜色上犯了一个小错误。Android 采用#[alpha] [hex]颜色输入类型。您刚刚提供了十六进制部分。Android 不支持此功能,因此UnsupportedOperationException.

尝试使用这个:

<item name="android:startColor">#FF0b2749</item>

但我不能保证这有效,因为我从未将渐变与样式结合使用过。