Как получить доступ к выделенным ресурсам (цвету) в java

Я хочу получить доступ к цветовому ресурсу, определенному как ресурс с возможностью рисования и желанию переключить цвет фона в 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> 

У вас есть 2 возможности:

  • 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 

Вы можете использовать следующий код, чтобы изменить цвет кнопки –

 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)

Для этого параметра ваш код будет следующим:

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