我无法自定义我的复选框,虽然我已经在xml首选项文件中定义了背景,但它不会拉取文件。 1.我试图显示复选框的自定义图像,并将选择器xml定义为“android_button.xml”,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checkable="true"
android:drawable="@drawable/state_normal" /> <!-- pressed -->
<item android:state_checked="true"
android:drawable="@drawable/android_pressed" /> <!-- focused -->
<item android:drawable="@drawable/state_normal" /> <!-- default -->
</selector>
state_normal和android_pressed是res&gt; drawable文件夹中的两个.png图像。
2.my Checkbox preference.xml文件是:
<CheckBoxPreference android:key="@string/Drop_Option"
android:title="Close after call drop"
android:defaultValue="true"
android:background="@drawable/android_button"
/>
定义中是否有任何错误,屏幕上显示的唯一更改是android:title文本,如果我更改文本,则会更改文本。没有别的变化。我该如何解决。谢谢你的建议。
答案 0 :(得分:43)
有两种方法可以实现您的需求,首先是在res / layout中定义自定义复选框布局custom_chexbox.xml:
<?xml version="1.0" encoding="UTF-8"?>
<CheckBox xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+android:id/checkbox" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:focusable="false"
android:clickable="false" android:button="@drawable/android_button"/>
然后,您需要为首选项指定此布局:
<CheckBoxPreference android:key="@string/Drop_Option"
android:title="Close after call drop" android:defaultValue="true"
android:widgetLayout="@layout/custom_checkbox"/>
第二种方法是创建自定义主题,重新定义复选框视图的样式并将主题应用于首选项活动,有关详细信息,请参阅How to customize the color of the CheckMark color in android in a dialog. : android。
答案 1 :(得分:0)
创建一个可drwable的xml文件:
New_ID
以编程方式设置它 cb.setButtonDrawable(R.drawable.checkboxcustom);