每個按鈕都代表可點擊的東西,它具有存儲在用戶可配置的數據庫中的顏色。該按鈕的背景是後面的<shape>
。如何動態更改可繪製的<shape>的顏色? (Android)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp" android:color="#000" />
<corners android:radius="5dp" />
<gradient android:startColor="#FFF"
android:centerColor="#FFF"
android:endColor="#666"
android:angle="315" />
<padding android:bottom="2dp"
android:left="2dp"
android:right="2dp"
android:top="2dp" />
</shape>
我想獲得在<gradient>
元素 - 特別是startColor
centerColor
和endColor
屬性。我可以這樣做:
button.getBackground().setTint(theColor);
但是,這似乎是消除了中風和漸變。
這可能嗎?有沒有更好的辦法?
你試過這種方式嗎?(((GradientDrawable)button.getBackground()).setColor(theColor);' – Ironman