【发布时间】:2011-11-18 22:46:30
【问题描述】:
我试图在 onCreate 期间通过颜色资源以编程方式设置文本颜色,但得到了一些奇怪的结果。
我在 res\colors.xml 中定义了一个颜色资源:
<resources>
<color name="wheelFill">#C0FFFFFF</color>
</resources>
然后我的活动使用以下代码检索颜色:
int WheelColour = getResources().getColor(R.color.wheelFill);
最后我将它分配给一个 Paint:
mBackgroundPaint.setColor(WheelColour);
当我运行我的应用程序时,没有设置颜色,我从 getColor 行收到一条日志消息,声称“颜色值‘列表’必须以 # 开头”。 'List' 是我的一个字符串资源的值,所以很明显那里有些东西搞砸了。
如果我绕过资源并使用:
int WheelColour = Color.argb(0xC0, 0xFF, 0xFF, 0xFF);
一切正常,所以它必须是 getColor 调用,但我看不出它有什么问题。 (我已经尝试明确使用没有区别的上下文)。
有没有其他人遇到过这种情况或成功地从颜色资源中设置了油漆颜色?
【问题讨论】:
-
可能你的 R.java 搞砸了,没有链接到正确的资源。清理项目并刷新
-
已经尝试过了,但感谢您的建议 - 它在过去解决了一些无法解释的问题。
-
关闭一切,刷新几次然后清理一切又开始工作了。所以看起来它毕竟是损坏的 R.java。
-
binnyb 如果您发表评论作为答案,我会接受。看起来我的 values/color.xml 文件的名称弄乱了一些东西,一些清理和刷新修复了它。