selector使用
selector主要用于點選按鈕或者一些控件時可以産生動态的點選效果,使使用者獲得更好的體驗。下面介紹一下它的使用方式:
1.首先在res下建立drawable目錄,然後在drawable目錄下建立btn_select.xml檔案:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 預設時的背景圖檔
<item android:drawable="@drawable/pic1"/>
-->
<!-- 沒有焦點時的背景圖檔 -->
<item android:drawable="@drawable/startnormal" android:state_window_focused="false"/>
<!-- 非觸摸模式下獲得焦點并單擊時的背景圖檔
<item android:drawable="@drawable/pic2" android:state_focused="true" android:state_pressed="true"/>
-->
<!-- 觸摸模式下單擊時的背景圖檔 -->
<item android:drawable="@drawable/startpress" android:state_focused="false" android:state_pressed="true"/>
<!-- 選中時的圖檔背景
<item android:drawable="@drawable/pic4" android:state_selected="true"/>
-->
<!-- 獲得焦點時的圖檔背景
<item android:drawable="@drawable/pic5" android:state_focused="true"/>
-->
</selector>
2.如何使用已經建立的btn_select.xml?
注:在button按鈕中添加如上屬性就ok了!
3.此時我們已經實作了點選按鈕背景切換的效果,那麼如果點選按鈕切換字型顔色呢?
其實原理差不多,大同小異,首先在res/values目錄下建立color.xml檔案:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<drawable name="normal_color">#ff4500</drawable>
<drawable name="press_color">#434523</drawable>
</resources>
然後在res/drawable目錄下建立btn_press_color.xml:
這裡寫代碼片<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false" android:state_enabled="true" android:state_pressed="false"
android:color="@drawable/normal_color" />
<item android:state_pressed="true" android:color="@drawable/press_color" />
</selector>
最後在控件中使用就可以了,顔色使用是textcolor屬性:
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_select"
android:text="@string/btn_text"
android:textColor="@drawable/btn_press_color"
android:textSize="22sp"
android:textStyle="bold"
/>