Программное изменение цвета формы в Android

Я пытаюсь изменить цвет фигуры программно, но это не работает.

Вот форма

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <solid android:color="#9F2200"/>
    <stroke android:width="2dp" android:color="#fff" />
</shape>

вот как я использую его в качестве фона кнопки

<Button                
  android:id="@+id/ibtn_EA_ColorPick_new"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" 
  android:layout_marginLeft="10dp"
  android:layout_marginRight="10dp"
  android:background="@drawable/round_button"
  />

и вот как я меняю его цвет

GradientDrawable bgShape = (GradientDrawable)btn_ColorPick.getBackground();
bgShape.setColor(Color.RED);

Но когда я меняю цвет фона, он удаляет кнопку с экрана.


person Addy    schedule 15.05.2015    source источник
comment
@DerGolem: я задал тот же вопрос, но у меня это не сработало.   -  person Addy    schedule 15.05.2015


Ответы (1)


Измените код, как показано ниже

GradientDrawable bgShape = (GradientDrawable)btn_ColorPick.getBackground();
 bgShape.mutate()
 bgShape.setColor(Color.RED);
person Manish    schedule 15.05.2015
comment
круто, спасибо большое! - person Kuldeep mourya; 26.01.2019