一、GradientDrawable是什么?
GradientDrawable是shape标签的代码实现。对于项目中非通用的样式,可以通过代码创建或修改公共样式,无需针对每个样式创建一个.xml文件实现。
二、GradientDrawable怎么使用?
1、新创建
GradientDrawable background = new GradientDrawable();
background.setColor(Color.RED);
view.setBackgroundDrawable(background);
2、对shape标签修改
//bg_accent.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/colorAccent"/>
</shape>
GradientDrawable drawable = (GradientDrawable) mContext.getResources().getDrawable(R.drawable.bg_accent);
drawable.setColor(Color.RED);
view.setBackgroundDrawable(drawable)
3、注意事项
假如2中有边框,要实现只改变填充色需要将边框设置放到color之前,不然对color修改后会没有边框(这里有顺序性)
//bg_accent.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="1px"
android:color="#D2D6D9" />
<solid android:color="@color/colorAccent"/>
</shape>