1. 程式人生 > >android checkbox狀態選擇器的設定

android checkbox狀態選擇器的設定

checkbox系統中設定的設定樣式是通過background和button兩種方式,在background上面設定是沒有效果的,因此需要在button上面進行設定。一般在設定樣式沒有生效的時候可以參考一下系統樣式是如何設定的。系統的控制元件的樣式在2.3source\code\frameworks\base\core\res\res\values\styles.xml

第一步,在drawable包下新建selecor檔案,準備兩張圖片,一張選中時的圖片,一張未選中時的圖片,內容為:

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
  
    <item android:drawable="@drawable/checkbox_blank" android:state_checked="false" />  
    <item android:drawable="@drawable/checkbox" android:state_checked="true" />  
      
</selector>
上述選中時圖示為@drawable/checkbox  , 未選中時的圖示為:@drawable/checkbox_blank

第三部,設定layout中CheckBox的屬性加入自定義選擇器,針對button設定樣式選擇器,具體實現如下:

<CheckBox  
    android:id="@+id/cb_student_classing"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
     
    //android:background="@drawable/selector_checkbox"  
    android:button="@drawable/selector_checkbox"/>


或者參考其他人提供的方法

第一步,layout檔案中設定checkbox屬性:

android:button="@null"//這樣設定能解決checkbox在選中下不會顯示系統預設打勾圖示,否則設定選擇器會重疊自定義圖示

第二步,在drawable包下新建selecor檔案,準備兩張圖片,一張選中時的圖片,一張未選中時的圖片,內容為:

<?xml version="1.0" encoding="utf-8"?>  
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
  
    <item android:drawable="@drawable/checkbox_blank" android:state_checked="false" />  
    <item android:drawable="@drawable/checkbox" android:state_checked="true" />  
      
</selector>
上述選中時圖示為@drawable/checkbox  , 未選中時的圖示為:@drawable/checkbox_blank

第三部,激動人心的一步到了,設定layout中CheckBox的屬性加入自定義選擇器,具體實現如下:

<CheckBox  
    android:id="@+id/cb_student_classing"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content"  
     
    android:background="@drawable/selector_checkbox"  
    android:button="@null"/>