更改 Checkbox for Android 的选中和未选中图标

Posted

技术标签:

【中文标题】更改 Checkbox for Android 的选中和未选中图标【英文标题】:Change icons of checked and unchecked for Checkbox for Android 【发布时间】:2011-03-12 15:41:30 【问题描述】:

我想要一个自定义星标,而不是对图标进行复选标记(我有选中和未选中的图标)。这可以通过财产来完成吗?还是我必须声明一个派生自 Checkbox 的自定义小部件?

【问题讨论】:

【参考方案1】:

一种混合:

在你的布局文件中设置它:-

 <CheckBox android:layout_
           android:layout_ 
           android:text="new checkbox"
           android:background="@drawable/checkbox_background" 
           android:button="@drawable/checkbox" />

@drawable/checkbox 的样子:

<?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/checkbox_on_background_focus_yellow" />
 <item android:state_checked="false" android:state_focused="true"
  android:drawable="@drawable/checkbox_off_background_focus_yellow" />
 <item android:state_checked="false"
  android:drawable="@drawable/checkbox_off_background" />
 <item android:state_checked="true"
  android:drawable="@drawable/checkbox_on_background" />
</selector>

【讨论】:

与任何其他复选框 (developer.android.com/reference/android/widget/CheckBox.html) 相同。如果您想手动将其设置为选中或取消选中,您可以使用此方法:developer.android.com/reference/android/widget/… @ggomeze 如果我们也想改变文本的大小怎么办?? 你试过在 Checkbox 内缩放吗?:android:scaleX="1.5" and android:scaleY="1.5" android:button 属性不适用于棒棒糖之前的设备 @soshial 那么首选的兼容方法应该是什么?【参考方案2】:

它是android:button="@drawable/selector_checkbox" 让它发挥作用

【讨论】:

【参考方案3】:

这可以通过使用AppCompatCheckBox 来实现。您可以使用app:buttonCompat="@drawable/selector_drawable" 更改选择器。

它适用于 PNG,但我没有找到一种适用于 Vector Drawable 的方法。

【讨论】:

非常感谢,这几天我一直在苦苦挣扎。只有您的解决方案有效。【参考方案4】:

我意识到这是一个老问题,并且 OP 正在谈论使用不需要“复选框”外观的自定义 gx,但是这里有一个用于生成自定义彩色资产的绝佳资源:http://kobroor.pl/

只要给它相关的细节,它就会吐出带有 xml 资源的图形,你可以直接放入。

【讨论】:

【参考方案5】:

另一种选择是使用可绘制/文本视图而不是复选框并相应地对其进行操作。我已经使用这种方法为任务应用程序拥有自己的已选中和未选中的图像。

【讨论】:

以上是关于更改 Checkbox for Android 的选中和未选中图标的主要内容,如果未能解决你的问题,请参考以下文章

UWP CustomRenderer for Checkbox:指针在复选框更改样式?

android checkbox 能不能拦截点击事件

如何更改复选框的颜色?

Android版本:如何更改复选框的大小

单击列表项更改复选框状态?

Android Checkbox listview全选(禁用/启用)[重复]