自定义复选框starStyle的外观

时间:2013-02-25 00:58:28

标签: android android-checkbox

我在ListView行的xml布局中有以下内容:

 <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" />

它显示了一个蓝色星星,可以检查以选择收藏。这正是我需要的功能,但我只想自定义显示的星形图标。我想将颜色改为黄色而不是蓝色,如果可能的话也会使星形变小。是否可以通过更改应用于应用程序的主题来进行这些更改?我需要编辑哪些内容才能更改星形图标的外观?

1 个答案:

答案 0 :(得分: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"

然后我创建了四个图像来表示复选框的不同状态,即onoffon pressedoff pressed,并将它们放在{{1}中}。

希望这有助于其他任何试图找出如何自定义复选框的人。