【问题标题】:how to apply button background color dynamically using color resources in color.xml file如何使用 color.xml 文件中的颜色资源动态应用按钮背景颜色
【发布时间】:2012-05-04 22:39:22
【问题描述】:
我正在尝试使用颜色资源文件 (color.xml) 中的颜色 ID 将背景颜色动态应用于按钮。
btn.setBackgroundColor(R.color.green);
我也试过了
btn.setBackgroundColor(Resources.getSystem().getColor(R.color.green));
但它不起作用。
如果我申请
btn.setBackgroundColor(Color.Green);
它的工作。
但我需要从 color.xml 文件中应用颜色资源。请让我知道我该怎么做。
【问题讨论】:
标签:
android
button
background-color
【解决方案1】:
你应该使用这个:
btn.setBackgroundColor(getResources().getColor(R.color.Green));
第二种方式:
Resources resources = YourActivity.this.getResources();
Drawable drawable = resources.getDrawable(R.color.Green);
btn.setBackgroundDrawable(drawable);
你的 color.xml 看起来像:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="red">#f00</drawable>
<drawable name="green">#0f0</drawable>
<drawable name="gray">#ccc</drawable>
</resources>
**编辑
现在 getColor() 已被弃用:
ContextCompat.getColor(context, R.color.color_name)
【解决方案2】:
在 values create xml 下,将您的自定义颜色添加到该颜色。
现在你可以写 R.color."name"
(又名。将颜色重命名为颜色)