Android开发过程中,在使用某些控件时,我们会给控件设置background,其中就有用到shape,shape可以定义各种各样的形状,也可以定义一些图片资源。相对于传统图片来说,使用shape可以减少资源占用,减少安装包大小,还能够很好地适配不同尺寸的手机。shape其中的一个属性solid是用来填充内部颜色的,根据项目需求可能需要动态的更换颜色。下面大致实现以下动态修改solid颜色
import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.view.View;
/**
* Created by wangrui
*/
public class ColorUtils {
public static void setBackgroundColor(View view, int position) {
// view就是对应的控件(需要修改的颜色控件)
GradientDrawable background = (GradientDrawable) view.getBackground();
if (position % 4 == 0) {
background.setColor(Color.parseColor("#16bcda"));
}
if (position % 4 == 1) {
background.setColor(Color.parseColor("#da167b"));
}
if (position % 4 == 2) {
background.setColor(Color.parseColor("#8516da"));
}
if (position % 4 == 3) {
background.setColor(Color.parseColor("#167bda"));
}
}
}
其中只需要将view修改为项目中使用的控件即可。