Android selector背景選擇器

selector根據不一樣的選定狀態來定義不一樣的現實效果android

經常使用屬性:code

  • android:state_selected--------選中
  • android:state_focused--------得到焦點
  • android:state_pressed--------點擊
  • android:state_enabled--------設置是否響應事件

  • android:drawable 放一個drawable資源
  • android:state_pressed 是否按下,如一個按鈕觸摸或者點擊。
  • android:state_focused 是否取得焦點,好比用戶選擇了一個文本框。
  • android:state_hovered 光標是否懸停,一般與focused state相同,它是4.0的新特性
  • android:state_selected 被選中,它與focus state並不徹底同樣,如一個list view 被選中的時候,它裏面的各個子組件可能經過方向鍵,被選中了。
  • android:state_checkable 組件是否能被check。如:RadioButton是能夠被check的。
  • android:state_checked 被checked了,如:一個RadioButton能夠被check了。
  • android:state_enabled 可以接受觸摸或者點擊事件
  • android:state_activated 被激活(這個麻煩舉個例子,不是特明白)
  • android:state_window_focused 應用程序是否在前臺,當有通知欄被拉下來或者一個對話框彈出的時候應用程序就不在前臺了

有的須要加android:focusable和android:clickable爲true才能獲取焦點xml

簡單實例:點擊按鈕改變樣式blog

按鈕:事件

<Button 
    android:layout_width="160dp"
    android:layout_height="wrap_content"
    android:background="@drawable/button_select"
    android:text="點我變色"
    />

button_select.xmlutf-8

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/play_button"></item>
    <item android:state_focused="true" android:drawable="@drawable/play_button"></item>
    <item android:drawable="@drawable/button"></item>
</selector>

button.xml默認效果資源

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#E53B36"/>
</shape>

play_button.xml點擊效果input

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#E8B714"/>
</shape>

經常使用checkbox設置:it

<?xml version="1.0" encoding="UTF-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_window_focused="false" android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_check_on" />
    <item android:state_window_focused="false" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off" />
    <item android:state_enabled="true" android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/btn_check_on_pressed" />
    <item android:state_enabled="true" android:state_checked="false" android:state_pressed="true" android:drawable="@drawable/btn_check_off_pressed" />
    <item android:state_focused="true" android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_check_on_selected" />
    <item android:state_focused="true" android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off_selected" />
    <item android:state_enabled="true" android:state_checked="false" android:drawable="@drawable/btn_check_off" />
    <item android:state_enabled="true" android:state_checked="true" android:drawable="@drawable/btn_check_on" />
</selector>

經常使用ImageButton設置:io

<?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/button2_down" />
    <item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/button2_over" />
    <item android:state_enabled="true" android:drawable="@drawable/button2" />
</selector>

經常使用Button設置:

<?xml version="1.0" encoding="UTF-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:drawable="@drawable/login_input" />
    <item android:state_pressed="true" android:drawable="@drawable/login_input" />
    <item android:state_focused="true" android:drawable="@drawable/input_over" />
</selector>

設置TextView

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
   <item android:color="@color/gray" android:state_pressed="false" android:state_enabled="true"/>
    <item android:color="@color/white" android:state_pressed="true" android:state_enabled="true"/>
    <item android:color="@color/gray" android:state_enabled="false"/></selector>
相關文章
相關標籤/搜索