工具类代码:
public class DrawUtils { //GradientDrawable代替Drawable public static Drawable getDrawable(int rgb, float radius) { GradientDrawable gradientDrawable = new GradientDrawable(); //gradientDrawable.setColor(rgb);//设置填充颜色 gradientDrawable.setGradientType(GradientDrawable.RECTANGLE);//shape矩形 gradientDrawable.setCornerRadius(radius);//设置圆角半径 gradientDrawable.setStroke(DisplayUtils.dip2px(MyApp.context, 1), rgb);//设置边框厚度和颜色 return gradientDrawable; } //StateListDrawable代替selector public static StateListDrawable getSelector(Drawable normalDrawable, Drawable pressDrawable) { StateListDrawable stateListDrawable = new StateListDrawable(); stateListDrawable.addState(new int[]{android.R.attr.state_enabled, android.R.attr.state_pressed}, pressDrawable); stateListDrawable.addState(new int[]{android.R.attr.state_enabled}, normalDrawable); //设置默认状态 stateListDrawable.addState(new int[]{}, normalDrawable); return stateListDrawable; } }使用:
int red = 222; int green = 222; int blue = 222; //设置单一背景 //tv.setBackground(DrawUtils.getDrawable(Color.rgb(red,green,blue),UIUtils.dp2px(5))); tv.setBackground(DrawUtils.getSelector(DrawUtils.getDrawable(Color.rgb(red, green, blue), UIUtils.dp2px(5)) , DrawUtils.getDrawable(Color.WHITE, UIUtils.dp2px(5))));