Android经常会使用shape来定制一些View的背景,可以修改View的背景颜色,形状等属性。一般情况下,shape都是在xml文件里面实现,比如:
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#1d3c80" /> <corners android:radius="@dimen/dim30" /> </shape>
目前有一个需求,背景颜色值是从API中读取的,如果直接用
rl_tanghua.setBackgroundColor(Color.parseColor(qrModel.getBgcolor()));
就会碰到比较尴尬的radius圆角不见的。
这个时候,可以采用如下代码实现:
GradientDrawable rl_tanghuaGrad = (GradientDrawable)rl_tanghua.getBackground(); rl_tanghuaGrad.setColor(Color.parseColor(qrModel.getBgcolor()));