首页 > 代码库 > 通过代码定义shape/selector
通过代码定义shape/selector
public class DrawableUtil { /** * 定义一个shape资源 * * @param rgb * @param corneradius * @return */ public static GradientDrawable getDrawable(int rgb, int corneradius) { GradientDrawable gradientDrawable = new GradientDrawable(); gradientDrawable.setColor(rgb); gradientDrawable.setGradientType(GradientDrawable.RECTANGLE); gradientDrawable.setCornerRadius(corneradius); gradientDrawable.setStroke(UIUtils.dp2px(1), rgb); return gradientDrawable; } 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 r = random.nextInt(210); int g = random.nextInt(210); int b = random.nextInt(210); tv.setBackground( DrawableUtil.getSelector(DrawableUtil.getDrawable(Color.rgb(r, g, b), UIUtils.dp2px(5)), DrawableUtil.getDrawable(Color.WHITE, UIUtils.dp2px(5))));
通过代码定义shape/selector
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。