介绍两个Android不常用的Drawable:GradientDrawable和 StateListDrawable

本文介绍如何使用GradientDrawable自定义视图的颜色和圆角,并利用StateListDrawable实现不同状态下的视图样式变化。
//---------------------------------------------------------------------------------------------------------------------------------  
/*--------------- normalDrawable begin ---------------*/ GradientDrawable normalDrawable = new GradientDrawable(); // 得到随机颜色 Random random = new Random(); int alpha = 255; int green = random.nextInt(190) + 30; // 30-220 int red = random.nextInt(190) + 30;// 30-220 int blue = random.nextInt(190) + 30;// 30-220 int argb = Color.argb(alpha, red, green, blue); // 设置填充颜色 normalDrawable.setColor(argb); // 设置圆角半径 normalDrawable.setCornerRadius(UIUtils.dip2Px(6)); /*--------------- normalDrawable end ---------------*/ //-----------------------------------------------------------------------------------------------------------------------------------------------
/*--------------- pressedDrawable begin ---------------*/ GradientDrawable pressedDrawable = new GradientDrawable(); pressedDrawable.setColor(Color.DKGRAY); pressedDrawable.setCornerRadius(UIUtils.dip2Px(6)); /*--------------- pressedDrawable end ---------------*/ //------------------------------------------------------------------------------------------------------------------------------------------- // 设置一个状态图片 StateListDrawable stateListDrawable = new StateListDrawable(); // @attr ref android.R.styleable#DrawableStates_state_pressed stateListDrawable.addState(new int[] { android.R.attr.state_pressed }, pressedDrawable); stateListDrawable.addState(new int[] {}, normalDrawable);

需求说明:这两个类GradientDrawable和StateListDrawable;

GradientDrawable:可以自定义颜色,圆角。

StateListDrawable:就是一个状态选择器。

转载于:https://www.cnblogs.com/tinyclear/p/6102844.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值