如何使用color.xml文件中的颜色资源动态应用按钮背景颜色

pra*_*enb 2 android button background-color

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

btn.setBackgroundColor(R.color.green);

我也尝试过这个

btn.setBackgroundColor(Resources.getSystem().getColor(R.color.green));
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

如果我申请

btn.setBackgroundColor(Color.Green);
Run Code Online (Sandbox Code Playgroud)

它的工作.

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

ρяσ*_*я K 7

你应该用这个:

btn.setBackgroundColor(getResources().getColor(R.color.Green));
Run Code Online (Sandbox Code Playgroud)

第二种方式:

Resources resources = YourActivity.this.getResources();  
Drawable drawable = resources.getDrawable(R.color.Green);
btn.setBackgroundDrawable(drawable);
Run Code Online (Sandbox Code Playgroud)

你的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>  
Run Code Online (Sandbox Code Playgroud)