Selector
主要用于状态切换时显示不一样的界面。
1. item用于指定不同的状态。
android:state_pressed
控件是否被按压android:state_selected
控件是否被选择android:state_enabled
控件是否可用
2. 使用图片作为背景
布局文件
<Button
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@drawable/btn_tab_selector" />
btn_tab_selector.xml
文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/tab_s" />
<item android:state_selected="true"
android:drawable="@drawable/tab_s" />
<item
android:drawable="@drawable/tab" />
</selector>
效果如下
3. 使用shape来指定背景
布局文件,左边按钮为正常状态,右边按钮android:enabled
状态为false
<Button
android:text="按钮"
android:layout_width="100dp"
android:layout_height="50dp"
android:textColor="@color/btn_text_selector"
android:background="@drawable/btn_selector" />
<Button
android:text="按钮"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_marginLeft="10dp"
android:textColor="@color/btn_text_selector"
android:enabled="false"
android:background="@drawable/btn_selector" />
背景btn_selector.xml
文件
<selector>
<item android:state_pressed="true" android:state_enabled="true">
<shape>
<solid android:color="#ff1e6edc" />
</shape>
</item>
<item android:state_selected="true" android:state_enabled="true">
<shape>
<solid android:color="#ff1e6edc" />
</shape>
</item>
<item android:state_enabled="false">
<shape>
<solid android:color="#ffe3e3e6" />
</shape>
</item>
<item >
<shape>
<solid android:color="#ff2e7bef" />
</shape>
</item>
</selector>
字体颜色btn_text_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:state_enabled="true"
android:color="#ff222222" />
<item android:state_pressed="true" android:state_enabled="true"
android:color="#ff222222" />
<item android:state_enabled="false"
android:color="#ffcccccc" />
<item
android:color="#ffffffff" />
</selector>
效果如下