5

我在我的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" />

它会显示一个蓝色星形,可以选中它以选择最喜欢的。这正是我需要的功能,但我只想自定义显示的星形图标。我想把颜色改成黄色而不是蓝色,如果可能的话,我也想把星星变小。是否可以通过更改应用于应用程序的主题来进行这些更改?我需要编辑什么来更改星形图标的外观?

4

1 回答 1

8

我解决了这个问题如下。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 pressedres/drawables

希望这可以帮助其他试图弄清楚如何自定义复选框的人。

于 2013-02-25T16:56:02.380 回答