8

我想访问定义为可绘制资源的颜色资源并希望在 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>

4

3 回答 3

6

你有两种可能性:

  • 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
于 2012-10-20T11:50:27.433 回答
0

您可以使用以下代码更改按钮的颜色 -

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

并从以下链接获取 rgb 值 -

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

于 2012-10-20T12:45:03.377 回答
0

如果您使用的是资源颜色,您可能应该使用以下方法解决它getResources().getColor(R.color.example_color)

对于此选项,您的代码如下:

myButton.setBackgroundResource(getResources().getColor(R.color.example_color));
于 2014-09-10T18:16:50.500 回答