使用Android的颜色选择器可以让我们的view在不同状态下显示不同的颜色。

1、Android中ListView 选择某项改变该行字体颜色

 

android 自定义view 矩形不同颜色 android颜色选择控件_sed

2、文件位置

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

3、语法示例

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_selected="true" android:color="@color/white" />

    <item android:state_focused="true" android:color="@color/white" />

    <item android:state_pressed="true" android:color="@color/white" />

    <item android:state_enabled="true" android:color="@color/black"/>

    <item android:state_enabled="false" android:color="@color/white"/>

    <item android:state_window_focused="false" android:color="@color/black"/>

    <item android:color="@color/black" />

</selector>

 

4、属性

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。

5、注意

         A:要记住,状态列表中一个与对象当前状态匹配的项目会被使用。因此,如果列表中的第一项没有包含以上任何一种状态属性,那么每次都会使用这个项目,因此默认设置应该始终被放到最后。

         B:如果出现失去焦点,背景色延迟的情况,不要使用magin。

         C:drawable下的selector可是设置状态背景列表(可以让view的背景在不同状态时变化)说明:也可以定义状态背景列表,但是是定义在drawable文件夹下,用的不是color属性,而是drawable属性。