UI

动态修改Shape的solid属性的color值

Posted by 程序亦非猿 on 2015-08-18

Android中Shape经常会被用到,今天遇到个问题,要动态修改Shape的背景颜色,在此记录一下.

Xml中的Shape一般都会写死一个颜色,如下:

1
2
3
4
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<solid android:color="@color/white" />
</shape>

然而当我们需要在运行时,动态去修改需要如何做呢?
其实很简单:

1
2
GradientDrawable drawable =(GradientDrawable)view.getBackground();
drawable.setColor(getResources().getColor(color));

参考资料