一.在资源文件中常见状态代表的意义
(一)android:drawable
这个属性是必须的,为当前控件指定资源。
(二)android:state_pressed
布尔值。true指当用户点击或者触摸该控件的状态。默认为false;一般用于设置按钮颜色/图片的设置。
(三)android:state_focused
布尔值。ture指当前控件获得焦点时的状态。默认为false;一般用于EdiText。
(四)android:state_hovered
布尔值。true表示光标移动到当前控件上的状态。默认为false;光标是否悬停,通常与state_focused 相同,它是4.0的新特性,一般用于EdiText。
(五)android:state_selected
布尔值。true表示被选择的状态,例如在一个下拉列表中用方向键下选择其中一个选项。
这个和focus的区别,selected是focus不充分的情况。比如一个listview获得焦点(focus),而用方向键选择了其中的一个item(selected)
(六)android:state_checkable
布尔值。ture表示可以被勾选的状态。这个仅在当控件具有被勾选和不被勾选的状态间转换时才起作用。
(七)android:state_checked
布尔值。true表示当前控件处于被勾选(check的状态)
(八)android:state_enabled
布尔值。true表示当前控件出于可用的状态。比如可以被点击
(九)android:state_activated
布尔值。true表示当前控件被激活的状态。
android:state_window_focused
布尔值。true表示当前控件出于最前端时,应用窗口获得焦点的状态。
z
二.代码示例
(一)设置按钮在不同状态的改变
1.drawable资源文件
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:state_enabled="true" android:state_window_focused="false"
android:drawable="@drawable/button_pressed" /> <!-- pressed,enable等多个属性 -->
<item android:state_focused="true"
android:drawable="@drawable/button_focused" /> <!-- focused -->
<item android:state_hovered="true"
android:drawable="@drawable/button_focused" /> <!-- hovered -->
<item android:drawable="@drawable/button_normal" /> <!-- default --></selector>
2.资源文件的设置
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:background="@drawable/button" />
原文链接:CSDN