如何在java中访问drawable资源(color)

我想访问定义为可绘制资源的颜色资源,并希望在JAVA中切换背景颜色,基本上button的背景被改变使用下面提到的可绘制的XML。 我尝试访问button,并修改颜色属性,但这改变了button的形状正常的方形。 我想保持可绘制XML中定义的形状,并手动更改背景颜色。

<?xml version="1.0" encoding="UTF-8"?> 

 <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#EAEAEA" /> <corners android:bottomLeftRadius="8dip" android:bottomRightRadius="1dip" android:topLeftRadius="1dip" android:topRightRadius="8dip" /> </shape> </item> <item><shape android:shape="rectangle"> <solid android:color="#EAEA00" /> <corners android:bottomLeftRadius="8dip" android:bottomRightRadius="1dip" android:topLeftRadius="1dip" android:topRightRadius="8dip" /> </shape> </item> 

Solutions Collecting From Web of "如何在java中访问drawable资源(color)"

你有两种可能性:

  • myButton.setBackgroundColor(Color.CHOOSE_ONE);
  • myButton.setBackgroundResource(R.color.youCustomColor);

如果要从hex值设置颜色,只需使用Color类的静态方法:

 myButton.setBackgroundColor(Color.parseColor("#RRGGBB")); //http://developer.android.com/reference/android/graphics/Color.html#parseColor%28java.lang.String%29 

你可以使用下面的代码来改变button的颜色 –

 button.setBackgroundColor(Color.rgb(red, green, blue)); 

并从下面的链接获得rgb值 –

http://www.ceveni.com/2009/08/set-rgb-color-codes-for-android-and-rgb.html

如果你使用的是资源颜色,你应该用getResources().getColor(R.color.example_color)解决它getResources().getColor(R.color.example_color)

对于这个选项,你的代码如下:

 myButton.setBackgroundResource(getResources().getColor(R.color.example_color));