Android之drawable state各个属性详解

<?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_checked="true" android:color="@color/white" />
    <item android:color="@color/black" />
</selector>

官方对各个state属性的介绍如下:

android:constantSize

If true, the drawable's reported internal size will remain constant as the state changes; the size is the maximum of all of the states.
android:state_activated

State value for StateListDrawable, set when a view or its parent has been "activated" meaning the user has currently marked it as being of interest.
android:state_active

State value for StateListDrawable.
android:state_checkable

State identifier indicating that the object may display a check mark.
android:state_checked

State identifier indicating that the object is currently checked.
android:state_enabled

State value for StateListDrawable, set when a view is enabled.
android:state_first

State value for StateListDrawable.
android:state_focused

State value for StateListDrawable, set when a view has input focus.
android:state_last       

State value for StateListDrawable.
android:state_middle

State value for StateListDrawable.
android:state_pressed

State value for StateListDrawable, set when the user is pressing down in a view.
android:state_selected

State value for StateListDrawable, set when a view (or one of its parents) is currently selected.
android:state_single

State value for StateListDrawable.
android:state_window_focused

State value for StateListDrawable, set when a view's window has input focus.
android:variablePadding

If true, allows the drawable's padding to change based on the current state that is selected.
android:visible

Indicates whether the drawable should be initially visible.

注意:如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。(不是通过最佳匹配)
如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。

原文地址:https://www.cnblogs.com/liaojie970/p/5841778.html