Andorid之使用ImageView和Selector配置文件制作多樣式按鈕(默認、點擊、灰掉)

在做地圖的時候  有個需求:
     當可以縮放地圖的時候,放大按鈕可以使用。當不可以使用地圖的時候,放大按鈕不可以使用。放大按鈕在默認狀態下是一個背景,點擊的狀態下是另一個背景。
     廢話少說,代碼奉上:
    一、ImageView配置文件片段。
       

<ImageView
     android:id="@+id/ivZoomOut"
     android:layout_height="wrap_content"
     android:layout_width="wrap_content"
     android:layout_marginRight="10px"
     android:layout_marginBottom="10px"
     android:src="@drawable/zoom_out_2"
     />
 二、樣式控制配置文件zoom_out_2.xml:
 
View Code?
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">     
<!– Disabled –>
    <item android:state_enabled="false"
          android:state_pressed="false"
          android:textColor="@color/red"
          android:drawable="@drawable/zoom_out_disable" />     
<!– Pressed –>
    <item android:state_enabled="true"
          android:state_pressed="true"
          android:textColor="@android:color/white"
          android:drawable="@drawable/zoom_out_pressed" />     
<!– Focused –>
<!–     <item android:state_enabled="true"
          android:state_focused="true"
          android:textColor="@android:color/white"
          android:drawable="@drawable/list_item_focused" /> –>     
<!– Default –>
    <item android:state_enabled="true"
          android:state_pressed="false"
          android:drawable="@drawable/zoom_out_default"/>
</selector>
 三、代碼控制:
 

if(**){
          zoomOutView.setEnabled(false);
    }else{
         zoomOutView.setEnabled(true);
    }
 

 

作者 李克華

發佈留言