2

我正在尝试使用颜色资源文件(color.xml)中的颜色 ID 将背景颜色动态应用于按钮。

btn.setBackgroundColor(R.color.green);

我也试过这个

btn.setBackgroundColor(Resources.getSystem().getColor(R.color.green));

但它不工作。

如果我申请

btn.setBackgroundColor(Color.Green);

它的工作。

但我需要从 color.xml 文件中应用颜色资源。请让我知道我该怎么做。

4

2 回答 2

7

你应该使用这个:

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)
于 2012-04-24T09:47:23.187 回答
0

在值创建名为颜色的 xml 下,将您的自定义颜色添加到该颜色。现在你可以写 R.color."name" (也就是将颜色重命名为颜色)

于 2012-04-24T09:51:55.480 回答