我想访问定义为可绘制资源的颜色资源,并希望在JAVA中切换背景颜色,基本上使用下面提到的可绘制XML来更改按钮的背景。我尝试访问按钮并修改颜色属性,但这会将按钮的形状更改为正常的方形。我想保持可绘制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>
答案 0 :(得分:5)
您有两种可能性:
myButton.setBackgroundColor(Color.CHOOSE_ONE);
myButton.setBackgroundResource(R.color.youCustomColor);
如果要从十六进制值设置颜色,只需使用Color
类的静态方法:
myButton.setBackgroundColor(Color.parseColor("#RRGGBB"));
//http://developer.android.com/reference/android/graphics/Color.html#parseColor%28java.lang.String%29
答案 1 :(得分:0)
您可以使用以下代码更改按钮的颜色 -
button.setBackgroundColor(Color.rgb(red, green, blue));
从下面的链接获取rgb值 -
http://www.ceveni.com/2009/08/set-rgb-color-codes-for-android-and-rgb.html
答案 2 :(得分:0)
如果您使用的是资源颜色,则应该使用getResources().getColor(R.color.example_color)
对于此选项,您的代码如下:
myButton.setBackgroundResource(getResources().getColor(R.color.example_color));