drawable下的非图片资源之selector
2016-05-30 16:50
162 查看
1.写selector的xml时,item的顺序有个严格的要求,条件限定越细致,则应该放到前面。因为:
如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。
如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。
比如:
如果把第二个item放到第一个,则第二个将不起作用,因为<item android:drawable="@mipmap/ic_launcher" />没有标明任何状态,所以将被任何状态先匹配到,这样就永远不会有按下去的效果了
2.如果要设置不同状态下文字的颜色,要在res/color下面来写selector,里面设置item的color属性,drawable下面的selector里没有color属性,也不能把drawable设置成颜色值,不能把控件的背景设置成color下的颜色选择器(但是可以设置成一种单一的颜色值),如果要在drawable的selector里使用纯色的背景,要么用纯色图片,要么用sharp(利用sharp的填充色)
3.按钮中用selector时,只能呈现出按着和非按着2种状态(pressed),不能在按下后抬起手还保持按下的状态,而radiobutton可以设置checked状态,让其在按下后(选择了这个radiobutton)放开手还保持按下的选择器状态。
如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。
如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。
比如:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/sharp_rectangle" android:state_focused="false" android:state_pressed="true" /> <item android:drawable="@mipmap/ic_launcher" /> </selector>
如果把第二个item放到第一个,则第二个将不起作用,因为<item android:drawable="@mipmap/ic_launcher" />没有标明任何状态,所以将被任何状态先匹配到,这样就永远不会有按下去的效果了
2.如果要设置不同状态下文字的颜色,要在res/color下面来写selector,里面设置item的color属性,drawable下面的selector里没有color属性,也不能把drawable设置成颜色值,不能把控件的背景设置成color下的颜色选择器(但是可以设置成一种单一的颜色值),如果要在drawable的selector里使用纯色的背景,要么用纯色图片,要么用sharp(利用sharp的填充色)
3.按钮中用selector时,只能呈现出按着和非按着2种状态(pressed),不能在按下后抬起手还保持按下的状态,而radiobutton可以设置checked状态,让其在按下后(选择了这个radiobutton)放开手还保持按下的选择器状态。
相关文章推荐
- ios开发——CMDeviceMotion陀螺仪的使用
- android 唤醒设备 cpu后台不休眠
- 数据字段的空值以及记录的空值,返回字段和记录的值不存在
- 基于消息的分布式事务简单方案
- js && 与 ||的总结
- Activity之间传递数据
- Nginx配置 批量二级域名映射到二级目录
- Linux中重定向及管道
- 团队作业—第二阶段05
- fork()函数
- utf-8 转码--网址转码
- 花20分钟写的-大白话讲解如何给github上项目贡献代码
- Linux安装Redis
- php 扩展学习
- 背包问题
- Machine Learning in Action 学习笔记-(1)
- Java中的注解
- nginx 服务
- poj2771(二分图,最大独立集)
- iOS手机APP命名规范整理