Android应用资源---状态颜色列表(Color State List)
来源:互联网 发布:网络最火的手游 编辑:程序博客网 时间:2024/05/17 07:55
本博客转载于:http://blog.csdn.net/think_soft/article/details/7476019
ColorStateList是能够把申请的颜色定义在XML中的一个对象,但是它实际上会根据使用这个ColorStateList对象的View对象的状态,来改变颜色。例如,Button控件存在几种不同的状态之一(按下、聚焦、或者都不是),并且它要使用一个颜色状态列表,在每个状态期间,可以提供不同的颜色。
可以在一个XML文件中描述这个状态列表。每个颜色被定义在一个<selector>元素内部的<item>元素中。每个<item>元素使用各种属性来描述它应该用于那个状态中。
每个状态改变期间,会从上到下遍历状态列表,第一个被找到的与当前状态匹配的颜色会被使用,这个选择不是基于最佳匹配,而是简单选择遇到的第一个满足条件的项目。
注意:如果要提供静态颜色资源,请使用简单的Color值。
文件位置(FILE LOCATION):
Res/color/filename.xml,文件名被做资源的ID。
被编译的资源数据类型(COMPLILED RESOURCE DATATYPE):
资源指向一个ColorStateList对象。
资源引用(RESOURCE REFERENCE):
在Java代码中:R.color.filename
在XML中:@[package:]color/filename
语法(SYNTAX):
<?xml version="1.0" encoding="utf-8"?>
<selectorxmlns:Android="http://schemas.android.com/apk/res/android">
<item
android:color="hex_color"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
元素(ELEMENTS):
<selector>
必须的,它必须是根元素。包含一个或多个<item>元素。
属性(ATTRIBUTES):
xmlns:android:
字符串,必须的。它定义了XML的命名空间,必须是“http://schemas.android.com/apk/res/android”。
<item>
定义某个状态期间使用的颜色,颜色会做为这个元素的一个属性。它必须是<selector>元素的子元素。
属性(ATTRIBUTES):
android:color
十六进制颜色,必须的。颜色是用RGB值来指定的,并且可选择alpha通道。
这个值始终是用#字符开头,后面跟的是Appha-Red-Green-Blue信息,格式如下:
#RGB
#ARGB
#RRGGBB
#AARRGGBB
android:state_pressed
一个布尔值,如果这个项目是在对象被按下时使用,那么就要设置为true。(如,按钮被触摸或点击时。)false应该用于默认的非按下状态。
android:state_focused
一个布尔值,如果这个项目是在对象获取焦点时使用,那么就要设置为true。如,一个选项标签被打开时。如果这个项目要用于对象没有被被选择的时候,那么就要设置为false。
android:state_checkable
一个布尔值,如果这个项目要用于对象的可选择状态,那么就要设置为true。如果这个项目要用于不可选状态,那么就要设置为false。(它只用于一个对象在可选和不可选之间的转换)。
android:state_checked
一个布尔值,如果这个项目要用于对象被勾选的时候,那么就要设置为true。否者设为false。
android:state_enabled
一个布尔值,如果这个项目要用于对象可用状态(接受触摸或点击事件的能力),那么就要设置为true,否者设置为false。
android:state_window_focused
一个布尔值,如果这个项目要用于应用程序窗口的有焦点状态(应用程序是在前台),那么就要设置为true,否者设置false。
注意:要记住,状态列表中一个与对象当前状态匹配的项目会被使用。因此,如果列表中的第一项没有包含以上任何一种状态属性,那么每次都会使用这个项目,因此默认设置应该始终被放到最后。
例子(EXAMPLE):
XML文件被保存在res/color/button_text.xml中:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
布局XML会把这个颜色列表应用与一个View对象:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text"/>
- Android应用资源---状态颜色列表(Color State List)
- Android应用资源---状态颜色列表(Color State List)
- Color State List Resource(颜色状态列表资源)
- Android: Color State List Resource (颜色申明列表资源)
- Android-Color State List用于控件在各状态下的文本颜色显示
- Android 颜色状态列表资源
- Android资源知识(六)之控件状态State List
- android开发 color state list
- android-Color State List Resource
- Android API Guides---Color State List Resource
- Android 应用资源(二) drawable state
- Color State List Resource
- Color State List Resource
- Android常用的颜色列表,color.xml
- Android常用的颜色列表,color.xml
- Android 常用颜色列表 color.xml
- Android常用的颜色列表 color.xml
- android系统颜色color资源问题分析
- NYOJ 三角形面积
- Android APK对齐总结
- 《CSS权威指南》读书笔记5
- 图像处理之二维高斯滤波详解
- 石子合并问题
- Android应用资源---状态颜色列表(Color State List)
- py自学:暴力破解校园网密码
- 前端基础知识(一)
- 山科大校赛C题
- JAVA中的面试题-多线程
- USACO 2.3 货币系统(背包/生成函数)
- Codeforces 369D Valera and Fools【思维+dp】
- 无法连接远程桌面--必须为远程桌面启用Windows防火墙例外
- MySQL(七)--索引