2013-02-25 105 views
4

的XML佈局內我下面我ListView行:自定義複選框的外觀starStyle

<CheckBox 
     android:id="@+id/favbutton" 
     style="?android:attr/starStyle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" /> 

它表明可以進行檢查,以選擇一個最喜歡的藍色恆星。這正是我需要的功能,但我只想定製顯示的星形圖標。我想將顏色改爲黃色而不是藍色,並且如果可能的話使星形變小。是否可以通過更改應用於應用程序的主題來進行這些更改?我需要編輯哪些內容才能更改星形圖標的外觀?

+0

看看[這裏](http://stackoverflow.com/a/3443880/1050058)。只需創建你自己的形象和風格。這與創建狀態按鈕相似。 – 2013-02-25 02:26:00

+0

感謝Yul的那個鏈接,那裏的信息幫了很多! :) – BruceHill 2013-02-25 16:29:55

回答

7

我解決這個問題如下。我在res/drawable稱爲btn_star_selector.xml創建的文件和如下所定義的選擇:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_checked="true" android:state_pressed="true" android:drawable="@drawable/btn_star_on_pressed" /> 
    <item android:state_checked="false" android:state_pressed="true" 
     android:drawable="@drawable/btn_star_off_pressed" /> 
    <item android:state_checked="true" android:drawable="@drawable/btn_star_on" /> 
    <item android:state_checked="false" android:drawable="@drawable/btn_star_off" /> 
</selector> 

利用該選擇器定義,那麼我取代該線路checkbox定義

style="?android:attr/starStyle" 

與此

android:button="@drawable/btn_star_selector" 

然後我創建了四個圖像來表示複選框的不同狀態,即on,off,on pressedoff pressed,並且還將這些放置在res/drawables中。

希望這可以幫助其他人試圖弄清楚如何自定義複選框。

+0

你能分享這些資源(btns on-off-pressed)嗎? (: – 2014-03-20 09:08:08