【转】java代码中实现android背景选择的selector-StateListDrawable的应用
2016-04-03 22:02
381 查看
原文网址:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0924/1712.html
下面的代码应该很多人都熟悉:
这是一个给button使用的背景选择,这种不同状态显示不同背景的xml文件我们称为selector。其实selector的本质是一个drawable对象。
如果要用java代码实现上述的selector该如何实现呢?答案是StateListDrawable。
我们先看一个实现StateListDrawable的最简单例子:
这段代码中我们添加了三种状态。
下面我们用更规范的代码来演示如何在java中使用StateListDrawable,以及她对应的xml写法:
首先定义一个获得StateListDrawable对象的方法:
其中,就如注释中所讲的
使用
xml方式实现:
下面对应的具体实例,由于是做背景用,该xml将放于/res/drawable下面(StateList中第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,这也是为什么默认的值必须总是在最后)
selector的定义:
使用selector
下面的代码应该很多人都熟悉:
如果要用java代码实现上述的selector该如何实现呢?答案是StateListDrawable。
我们先看一个实现StateListDrawable的最简单例子:
下面我们用更规范的代码来演示如何在java中使用StateListDrawable,以及她对应的xml写法:
首先定义一个获得StateListDrawable对象的方法:
addState的顺序相当重要。
使用
ddStateDrawable
下面对应的具体实例,由于是做背景用,该xml将放于/res/drawable下面(StateList中第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,这也是为什么默认的值必须总是在最后)
selector的定义:
相关文章推荐
- 【转】android官方侧滑菜单DrawerLayout详解
- [Android] Opencv 环境搭建
- [Android] Android 视频播放总结
- [Android] 从源码分析 Handler 消息机制
- Android设计模式应用-享元模式
- [Android] Handler 详解
- Android图片的三级缓存
- 观察者模式在android 上的最佳实践
- android使用kotlin开发基础(一)之 hello kotlin
- Android设计模式应用-组合模式
- Android开发找工作之前先看看这些知识点吧
- 解决Android SDK Mananger 连接失败问题
- Android编程学习笔记 之 SharedPreferences数据存储
- 【经验】Android Gradle配置问题
- Android设计模式应用-桥接模式
- Android入门(二十二)解析JSON
- Android入门(二十一)解析XML
- Android入门(十八)服务
- Android入门(十七)Android多线程
- Android入门(十六)调用摄像头相册