1

我有可拉伸的xml up.xml如以下代碼如何動態改變可繪製顏色按鈕

<?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> 

和我有這樣的可繪製附加到按鈕如下

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

I」 m試圖在我的代碼中動態改變up.xml文件中固體android:color =「@ color/green」的顏色。我嘗試了以下,但它沒有奏效。

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

我收到以下錯誤 java.lang.ClassCastException:android.graphics.drawable.LayerDrawable不能轉換到android.graphics.drawable.GradientDrawable

誰能幫助?謝謝。

+0

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

回答

1

試試這個我的朋友

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