1

je up.xml drawable xml comme dans le code suivantComment changer de couleur Drawable dynamique pour les boutons

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > 
<item> 
    <rotate 
     android:fromDegrees="45" 
     android:toDegrees="45" 
     android:pivotX="-40%" 
     android:pivotY="87%" > 
     <shape 
      android:shape="rectangle" > 

      <solid 
       android:color="@color/green" /> 
     </shape> 
    </rotate> 
</item> 
</layer-list> 

et je cette drawable attaché à un bouton comme suit

<Button android:id="@+id/bill_amount_up" 
    android:layout_width="30dp" 
    android:layout_height="30dp" 
    android:background="@drawable/up" 
    /> 

Je J'essaie de changer la couleur de l'android solide: color = "@ color/green" dans le fichier up.xml dynamiquement dans mon code. J'ai essayé ce qui suit, mais cela n'a pas fonctionné.

((GradientDrawable)billAmountUp.getBackground()).setColor(color); 

Je reçois l'erreur suivante java.lang.ClassCastException: android.graphics.drawable.LayerDrawable ne peut pas être jeté à android.graphics.drawable.GradientDrawable

Quelqu'un peut-il aider? Je vous remercie.

+0

https://stackoverflow.com/questions/22001541/android-shape-xml-rotated-drawable-change-color-programmatically – codingnow

Répondre

1

essayer ce mon ami

Drawable myIcon = getResources().getDrawable(R.drawable.button); 
ColorFilter filter = new LightingColorFilter(Color.BLACK, Color.BLACK); 
myIcon.setColorFilter(filter);