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

Я хочу получить доступ к цветовому ресурсу, определенному как drawable resource, и желание переключить цвет фона в JAVA, в основном фон кнопки был изменен с помощью упомянутого ниже drawable XML. Я попытался получить доступ к кнопке и изменить атрибут цвета, но это изменило форму кнопки на нормальную квадратную форму. Я хочу сохранить форму, определенную в drawable 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>

3 ответов


у вас есть 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 снизу link -

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));