Android开发 StateListDrawable详解
前言
StateListDrawable是与xml中的selector属性对应代码实现类,它需要配合GradientDrawable的使用,如果你还不了解GradientDrawable可以参考我的另一篇博客:https://www.cnblogs.com/guanxinjing/p/11142599.html
配置对照表
android:state_pressed=["true" | "false"] 按下状态
android:state_focused=["true" | "false"] 聚焦状态
android:state_selected=["true" | "false"] 选中状态
android:state_active=["true" | "false"] 激活状态
android:state_checkable=["true" | "false"] 可校验状态
android:state_checked=["true" | "false"] 检查状态
android:state_enabled=["true" | "false"] 启用状态
android:state_window_focused=["true" | "false"] 状态栏聚焦状态
点击效果demo
GradientDrawable drawableRed = new GradientDrawable();
drawableRed.setShape(GradientDrawable.RECTANGLE);
drawableRed.setColor(Color.RED); GradientDrawable drawableBlue = new GradientDrawable();
drawableBlue.setShape(GradientDrawable.RECTANGLE);
drawableBlue.setColor(Color.BLUE); int pressed = android.R.attr.state_pressed;
StateListDrawable stateListDrawable = new StateListDrawable();
stateListDrawable.addState(new int[]{pressed}, drawableRed);
stateListDrawable.addState(new int[]{-pressed}, drawableBlue);
btn1.setBackground(stateListDrawable);
效果图:

Android开发 StateListDrawable详解的更多相关文章
- Android开发实例详解之IMF(Android SDK Sample—SoftKeyboard)
本博前面的文章介绍了Android开发环境的搭建和模拟器的常用操作.本次,将以Android Sample中经典的SoftKeyboard项目为例,详细解析Android上一个小型项目的开发过程和注意 ...
- Android开发——AsyncTask详解
android提供AsynvTask,目的是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的. Android为了降低开发难度,提供了AsyncTask.Asyn ...
- Android开发 Context详解与类型 转载
转载地址:https://blog.csdn.net/guolin_blog/article/details/47028975 个人总结: Context分为 activity : activity其 ...
- Android开发之详解五大布局
http://bbs.chinaunix.net/thread-3654213-1-1.html 为了适应各式各样的界面风格,Android系统提供了5种布局,这5种布局分别是: LinearLayo ...
- Android 开发 ConstraintLayout详解
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' app:layout_constraintHorizo ...
- Android 开发 HandlerThread详解 转载
转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/75073307 对于Handler不太懂的可以参考我的这两篇文章: Androi ...
- Android开发 GradientDrawable详解
前言 GradientDrawable类似与Xml布局里的shape,常用在一些自己封装的对话框控件的背景或者其他View中,优势是不需要你在带着xml布局文件一起封包.. 画线 GradientDr ...
- Android开发 layer-list详解
参考:https://blog.csdn.net/speverriver/article/details/80925686 挖坑,以后填坑
- Android开发 LevelListDrawable详解
前言 此篇博客正在施工中... 作者其实就是想挖个坑备忘一下... 十分抱歉, 可以参考https://www.jianshu.com/p/f9ec65241b6b
随机推荐
- android 签名生成和签名验证
keytool -genkey -alias lingni -keyalg RSA -validity -keystore lingni.keystore -alias 是别名 lingni.keys ...
- 14-MySQL-Ubuntu-数据表的查询-范围查询(三)
范围查询 1,不连续查询-in, not in 查询年龄是12,18,34的学生姓名和年龄信息 select name,age from students where age in (12,18,34 ...
- RDLC报表问题:尚未指定报表“Report1”的报表定义
原文:尚未指定报表“Report1”的报表定义 在做RDLC项目中遇到这样的错误 本地报表处理期间出错. 尚未指定报表“Report1”的报表定义 未将对象引用设置到对象的实例. 解决方案: 打开re ...
- NPE问题
“防止 NPE,是程序员的基本修养.”NPE(Null Pointer Exception) 参考: https://www.jianshu.com/p/9915f2e34a13
- WebApi路由机制详解
随着前后端分离的大热,WebApi在项目中的作用也是越来越重要,由于公司的原因我之前一直没有机会参与前后端分离的项目,但WebApi还是要学的呀,因为这东西确实很有用,可单独部署.与前端和App交互都 ...
- POST提交数据之---Content-Type的理解
Content-Type是指http/https发送信息至服务器时的内容编码类型,contentType用于表明发送数据流的类型,服务器根据编码类型使用特定的解析方式,获取数据流中的数据. 在网络请求 ...
- LightOJ 1342 Aladdin and the Magical Sticks 期望(结论题)
题目传送门 题意:n根木棍,每根木棍都有一个权值,木棍有可识别的木棍和不可识别的木棍,每次抽取木棍时,会累加权值,如果是可识别的木棍就不放回,不可识别的木棍就放回,问每根木棍至少被抽取一次,权值的期望 ...
- android发编译
普通的反编译http://blog.csdn.net/vipzjyno1/article/details/21039349/ 反编译os http://gikir.com/blog/?p=115 ht ...
- JS鼠标经过
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...
- 如何理解 if __name__ == "__main__"
小明.py 朋友眼中你是小明(__name__ == '小明'), 你自己眼中你是你自己(__name__ == '__main__'), 你编程很好, 朋友调你去帮他写程序(import 小明, 这 ...