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" />

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。