ColorStateList是能够把申请的颜色定义在XML中的一个对象,但是它实际上会根据使用这个ColorStateList对象的View对象的状态,来改变颜色。例如,Button控件存在几种不同的状态之一(按下、聚焦、或者都不是),并且它要使用一个颜色状态列表,在每个状态期间,可以提供不同的颜色。

可以在一个XML文件中描述这个状态列表。每个颜色被定义在一个元素内部的元素中。每个元素使用各种属性来描述它应该用于那个状态中。

每个状态改变期间,会从上到下遍历状态列表,第一个被找到的与当前状态匹配的颜色会被使用,这个选择不是基于最佳匹配,而是简单选择遇到的第一个满足条件的项目。

注意:如果要提供静态颜色资源,请使用简单的Color值。

文件位置(FILE LOCATION):

Res/color/filename.xml,文件名被做资源的ID。

被编译的资源数据类型(COMPLILED RESOURCE DATATYPE):

资源指向一个ColorStateList对象。

资源引用(RESOURCE REFERENCE):

在R.color.filename

在XML中:@[package:]color/filename

语法(SYNTAX):

元素(ELEMENTS):

必须的,它必须是根元素。包含一个或多个元素。

属性(ATTRIBUTES):

xmlns:android:

字符串,必须的。它定义了XML的命名空间,必须是“http://schemas.android.com/apk/res/android”。

定义某个状态期间使用的颜色,颜色会做为这个元素的一个属性。它必须是元素的子元素。

属性(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会把这个颜色列表应用与一个View对象:

android color列表,Android应用资源---状态颜色列表(Color State List)相关推荐

  1. Android包体积优化上篇- 资源混淆优化

    导读:什么时候进行包体积优化?一般在app初创期时,由于业务代码较少,包体积也不大,相应这个时候对包体积的优化收益也较少.当业务逐渐成熟功能,迭代逐渐变多,包体积也会逐渐增加. 增加包体积主要影响如下 ...

  2. Android API 指南 - Android API Guides

    http://developer.android.com/intl/zh-CN/guide/components/index.html ) 请找到自己要翻译的部分,按下面的'链接规范'添加到下面列表中 ...

  3. android 中color目录,android中colors.xml颜色设置资源文件的方法

    1. 打开res目录下的values文件夹,双击打开colors.xml文件进行编辑 上代码 #008577 #00574B #D81B60 #ff0000 #0000ff 2. 在res目录下的la ...

  4. java listview颜色_[摘]android listview选中某一行,成选中状态颜色高亮显示

    构造自己的adapter,在getView中,设置颜色,点击item,刷新listview. 代码: view plaincopy to clipboardprint? import java.uti ...

  5. 7、android高级控件(2)(列表类视图)

    1.基本适配器BaseAdapter Android提供了一种适应性更强的基本适配器BaseAdapter,它允许开发者在别的代码文件中进行逻辑处理. 从BaseAdapter派生的数据适配器主要实现 ...

  6. Android 自定义 View:包含多种状态的下载用圆形进度条

    前言 最近做项目碰到一个这样的一个需求:需要一个环形的进度条表示一个下载请求的进度加载. 同时要以各种不同的图标展现其下载过程中的各个状态:等待.下载中.暂停.错误.完成. 具体状态对应图标见下图: ...

  7. Android之自定义瀑布流式的标签列表

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/50965588 本文出自:[顾林海的博客] ##前言 由于一些原因,马上 ...

  8. 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )

    文章目录 一.resources.arsc 资源映射表 混淆 二.resources.arsc 资源映射表二进制格式分析 三.参考资料 资源混淆时 , 需要修改混淆 resources.arsc 资源 ...

  9. Android常用的几种资源

    2019独角兽企业重金招聘Python工程师标准>>> Android常用的几种资源 一般资源都是放在res文件夹下的,res文件夹一般包含有values,drawable-ldpi ...

最新文章

  1. Spring Cloud Config配置中心的使用
  2. 网络推广外包——网络推广外包专员浅析移动端网站建设要点
  3. VNC over reverse SSH
  4. 有关循环和判断的几个小问题
  5. oracle10g备份导入
  6. 关于jsp页面转换成excel格式下载遇到问题及解决
  7. Golang map 三板斧第二式:注意事项
  8. redis批量删除键的操作
  9. Nginx的配置使用,启动、重启、关闭,以及路径配置
  10. 人机交互期末复习要点
  11. 轻松搞懂【TF-IDF、word2vec、svm、cnn、textcnn、bilstm、cnn+bilstm、bilstm+attention实现】英文长文本分类
  12. PyQt5最详细pyrcc5配置+样式使用
  13. 群晖DOCKER搭建自动签到 PT网站再也不怕忘记登录了
  14. 目标跟踪(4)使用dlib进行对象跟踪
  15. Go语言如何快速对接短信接口
  16. 安卓系统网络服务器地址,安卓系统 云服务器地址
  17. cad线性标注样式修改在哪里_CAD标注样式如何设置?
  18. oracle云erp产品有哪些,云ERP与传统ERP的区别有哪些百洋智能科技为您分析
  19. 单片机秒表c语言程序设计思路,单片机秒表程序设计
  20. 求9、99、999、......、999999999相加的和

热门文章

  1. android控件详解大全 android开发有关资料
  2. [转]关于jQuery性能优化
  3. 大规模数据作成时的注意点。
  4. Linux下的 【pwd】 命令; 显示当前目录全路径。
  5. 【Hive】集合函数
  6. git push错误解决方案
  7. 移动端滚动穿透的6种解决方案
  8. python3.6.1+selenium3.0环境安装问题及解决方法
  9. sql2000数据库置疑造成的原因以及如何解决置疑
  10. ant design table column 设置width不生效解决方案