自定义复选框的外观starStyle

问题描述:

的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

我解决这个问题如下。我在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