gpt4 book ai didi

android - 如何给android :startColor in gradient drawable in Android?添加主题属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:32 25 4
gpt4 key购买 nike

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

This may also be a reference to a resource (in the form "@[package:]type:name") or theme attribute (in the form "?[package:][type:]name") containing a value of this type.

我正在尝试向我的渐变可绘制对象添加一个属性,但出现错误。这是可绘制对象的代码:

这是 style.xml 中的代码:

<style name="test" parent="android:Theme">
<item name="android:startColor">#0b2749</item>
<item name="startColor">#0b2749</item>
</style>

当我尝试运行该 Activity 时,我收到此错误消息:

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

我尝试将 ?startColor 更改为 ?attr/startColor,但仍然出现相同的错误。我还将主题应用于 AndroidManifest.xml 文件中的 Activity 。

如何向渐变可绘制对象添加主题属性?

最佳答案

我在我的一个可绘制对象中遇到了同样的问题,我希望根据所选主题使用不同的颜色。我找到了一个解决方法,它并不能完全解决问题,但对我有用。我没有在样式中定义颜色,而是将整个可绘制对象定义为引用。

attrs.xml 中:

<resources>
<attr name="myDrawable" format="reference"/>
<resources>

在我的 style.xml 中:

<style name="style1">
<item name="myDrawable">@drawable/myDrawable1</item>
<style>
<style name="style2">
<item name="myDrawable">@drawable/myDrawable2</item>
<style>

当然,您需要在 drawable 文件夹中定义两个 drawable,myDrawable1myDrawable2,每个都具有正确的硬编码颜色。

而且效果很好。

关于android - 如何给android :startColor in gradient drawable in Android?添加主题属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com