我想更改<{p>>预定义的drawable
android.R.layout.simple_list_item_checked
有可能吗?
来自已选中
和未选中
要已选中
和未选中
我不想创建自定义列表项。
答案 0 :(得分:0)
这是可能的,但只能通过使用带有标准适配器的自定义布局,您可以通过使用自定义布局定义与预定义布局相同的ID,但只更改所需的布局。不幸的是,在这种情况下,android.R.layout.simple_list_item_checked的源代码默认情况下没有drawable。 (https://github.com/android/platform_frameworks_base/blob/master/core/res/res/layout/simple_list_item_checked.xml)它使用checkmark
属性
android:checkMark="?android:attr/textCheckMark"
我不确定您是否可以更改此设置,但我仍然建议使用带有标准适配器的自定义布局,只需将原始布局与当前布局进行比较,并使用drawable而不是复选标记定义所有相同的属性,就像下面的例子中一样:尽管如此,这取决于你。
<CheckBox android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="new checkbox"
android:background="@drawable/checkbox_background"
android:button="@drawable/checkbox" />
这是根据复选框的状态直接分配保存在@drawable中的自定义图像的方法。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:state_focused="true"
android:drawable="@drawable/first" />
<item android:state_checked="false" android:state_focused="true"
android:drawable="@drawable/second" />
<item android:state_checked="false"
android:drawable="@drawable/third" />
<item android:state_checked="true"
android:drawable="@drawable/fourth" />
</selector>
进一步阅读:http://developer.android.com/reference/android/widget/CompoundButton.html#setChecked%28boolean%29
更多信息:http://www.android-ios-tutorials.com/android/custom-android-checkbox-radiobutton/