系统的Drawable(二)-Selector
系统的Drawable(二)-Selector
Selector漫谈
Selector是定义 StateListDrawable 的标签,该Drawable代表着一个Drawable的集合,每一个Drawable都对应着View的一个状态,系统会根据View的状态来选择相应的Drawable,该Drawable常常会被用于做View的背景。通过 <Item> 标签来定义View对象的状态。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/white_color" android:state_pressed="true" />
<item android:drawable="@drawable/blue_color" android:state_pressed="false" />
</selector>
Android系统Drawable

Selector的属性
constantSize
表示StateListDrawable的固有大小是否会随着状态的改变而改变,状态的切换会导致切换到不同的Drawable,而不同的Drawable有不同的固有大小。此属性是一个布尔值,true表示StateListDrawable的固有大小保持不变,StateListDrawable的固有大小为Drawable集合的固有大小的最大值,false表示StateListDrawable的固有大小根据Drawable的不同而改变。默认为false。
dither
开启抖动效果,开启后可以让图片在低质量的屏幕上仍然有较好的显式效果,默认为true
variablePadding
StateListDrawable的padding属性是否会根据状态的改变而改变,true表示会根据状态的改变而改变,false表示不会跟随状态的改变而改变,此时StateListDrawable的padding的最大值,是Drawable集合的最大值。默认为false,不建议开启。
Item
代表View的状态和与状态相对应的Drawable。一个View主要以下的状态,每一个状态都是一个布尔值。
| 状态 | 描述 |
|---|---|
| android:state_activated | 表示View是否处于激活状态 |
| android:state_active | 当一个View被视为是活动的 |
| android:state_checkabl | 是否是可以被想选中的,用于ChekBox |
| android:state_checked | CheckBox/RadioButton是否被选中 |
| android:state_enabled | View 是否是可用状态 |
| android:state_first | 当一个视图为有序列表的第一个元素的时候 |
| android:state_focused | 当View获得焦点的时候 |
| android:state_last | 当一个视图为有序列表的最后一个元素的时候 |
| android:state_middle | 当View位于有序集合的中间位置时 |
| android:state_pressed | View是否被按压 |
| android:state_selected | View是否被选中 |
| android:state_single | State value for StateListDrawable, set when a view or drawable is considered "single" by its host. |
| android:state_window_focused | 当Window获得焦点时 |
系统的Drawable(二)-Selector的更多相关文章
- 系统的Drawable(四)-LayerListDrawable
系统的Drawable(四)-LayerListDrawable 学习自 https://blog.csdn.net/u014695188/article/details/52815444 Layer ...
- 修改Android系统字号(二)
/*********************************************************************** * 修改Android系统字号(二) * 说明: * ...
- Android系统--输入系统(十二)Dispatch线程_总体框架
Android系统--输入系统(十二)Dispatch线程_总体框架 1. Dispatch线程框架 我们知道Dispatch线程是分发之意,那么便可以引入两个问题:1. 发什么;2. 发给谁.这两个 ...
- 系统的Drawable(一)
系统的Drawable(一) 学习自 <Android 开发艺术探索> <官方文档> https://www.cnblogs.com/popfisher/p/6238119.h ...
- 我是如何一步步编码完成万仓网ERP系统的(二)前端框架
https://www.cnblogs.com/smh188/p/11533668.html(我是如何一步步编码完成万仓网ERP系统的(一)系统架构) https://www.cnblogs.com/ ...
- linux系统基础(二)
磁盘管理(一) Linux设备认识 /dev/cdrom /dev/sr0 /dev/mouse /dev/sda /dev/hda IDE硬盘(支持4块):hd(a-d) [非IDE硬盘]SCSI硬 ...
- Swift:使用系统AVFoundation实现二维码扫描和生成
系统提供的AVCaptureSession仅仅适用于iOS7.0以上的系统.之前的请用Zbar来替代 下载地址:http://download.csdn.net/detail/huobanbengku ...
- DHCP服务原理与搭建(Linux系统+路由器,二选一方案)
大家都知道上网的最基本前提是要在终端上设置IP.子网掩码.网关.DNS等地址信息,在家里或者在办公室很多时候打开电脑后发现就可以上网,并没有手动设置IP.掩码.DNS地址也能上网,这是什么原因呢?其实 ...
- ThinkPHP开发博客系统笔记之二
1. 登陆验证码 当用户登陆的时候我们希望也弹出验证码,有两种方法可以实现:一是再增加一个弹出验证码的dialog,二是和注册共用一个验证码dialog.第一种方法有大量重复代码,所以我们使用第二种方 ...
随机推荐
- android 系统开发板挂载U盘
cat /proc/partitions 查看有u盘设备 df 查看挂载情况 iTOP4416开发板插入u盘,自动挂载到 /mnt/udisk1
- Linux 服务器上快速配置阿里巴巴 OPSX NTP服务
编辑文件 "/etc/ntp.conf",根据情况修改文件内容为: 互联网上的服务器: driftfile /var/lib/ntp/drift pidfile /var/run/ ...
- 转:iOS-生成Bundle包-引入bundle-使用bundle
在我们使用第三方框架时,常常看到XXX.bundle的文件. 我们找到该文件,显示包内容,大致看到很多资源文件:图片.配置文本.XIB文件…… 什么是Bundle文件? 简单理解,就是资源文件包. ...
- C语言复习---二维数组和二级指针的关系:没关系,别瞎想(重点)
前提:一维数组和一维指针为什么可以替换使用? ] = { , , }; int *p = a; ; i < ; i++) printf("%d ", *(p + i)); 上 ...
- Coins in a Line I & II
Coins in a Line I There are n coins in a line. Two players take turns to take one or two coins from ...
- 基于ZedBoard的Webcam设计(一):USB摄像头(V4L2接口)的图片采集【转】
转自:http://www.cnblogs.com/surpassal/archive/2012/12/19/zed_webcam_lab1.html 一直想把USB摄像头接到Zedboard上,搭建 ...
- 如何将IOS版本的更新下载文件指向到自己的服务器
针对那些使用企业签名但是没有发布到AppSotre的IOS版本APP自动更新问题解决方案: 在apicloud中是这样说明的: 因为要填写plist地址所以不能向安卓那样直接填写服务器文件地址,但是直 ...
- jenkins主从从服务器发布脚本执行成功但总提示失败 FATAL: Remote call on XXXX failed
主从jenkins当调用 slave 执行编译脚本后提示如下错误,找了半天怎么也没有问题,后来忽然发现slave上java的版本和master不同,一个 1.8 一个 1.10,将slave降回1.8 ...
- NOIp 2018 提高组
T1铺设道路 传送门 题目描述 春春是一名道路工程师,负责铺设一条长度为 $ n $ 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 $ n $ 块首尾相连的区域,一开始,第 ii ...
- LeetCode(23):合并K个排序链表
Hard! 题目描述: 合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2-> ...
