通常按鈕在點擊前和后有兩種狀態,比如點擊前為藍色,點擊后為灰色,且不再響應點擊事件。
如果不使用selector選擇器,點擊后,就需要在程序中進行以下的類似操作
button1.setBackgroundResource(R.color.material_grey_300); button1.setTextColor(getResources().getColor(R.color.material_grey_50)); button1.setClickable(false);
如果使用selector選擇器,我們可以將上面的操作簡化為
button1.setEnabled(false);
selector代碼如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/igame_normal_white_color" android:state_pressed="true" /> <item android:color="@color/igame_actionbar_button_pressed_color" android:state_enabled="false" /> <item android:color="@color/igame_normal_op_color" /> </selector>
具體使用如下:
新建一個xml文件,比如取名為button_color_selector.xml,然后將selector塊的代碼放到文件去。
在布局文件中,在Button標簽中設置button的屬性即可
android:background="@drawable/button_color_selector"
使用selector選擇器可以簡化代碼,而且可以復用,當其它組件需要使用的時候,直接設置其屬性即可。