我在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" />
它显示了一个蓝色星星,可以检查以选择收藏。这正是我需要的功能,但我只想自定义显示的星形图标。我想将颜色改为黄色而不是蓝色,如果可能的话也会使星形变小。是否可以通过更改应用于应用程序的主题来进行这些更改?我需要编辑哪些内容才能更改星形图标的外观?
答案 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"
然后我创建了四个图像来表示复选框的不同状态,即on
,off
,on pressed
和off pressed
,并将它们放在{{1}中}。
希望这有助于其他任何试图找出如何自定义复选框的人。