3.App Resources-Resource Types/Color State List Resource

1. Color State List Resource

  A ColorStateList is an object you can define in XML that you can apply as a color, but will actually change colors, depending on the state of

    the View object to which it is applied. For example, a Button widget can exist in one of several different states (pressed, focused, or

    niether) and, using a color state list, you can provide a different color during each state.

  You can describe the state list in an XML file. Each color is defined in an <item> element inside a single <selector> element. Each <item> uses

    various attributes to describe the state in which it should be used.

2. Syntax 

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >//This must be the root element. Contains one or more <item> elements. 
    <item  //Defines a color to use during certain states, as described by its attributes
        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>

3. Example

//res/color/button_color.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>
//activity.xml

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/button_color"
        android:text="Button" />

 

posted @ 2014-11-03 13:58  Mirrorhanman  阅读(170)  评论(0编辑  收藏  举报