如何设置复选框边框颜色
Posted
技术标签:
【中文标题】如何设置复选框边框颜色【英文标题】:How to set checkbox border color 【发布时间】:2014-12-14 09:02:04 【问题描述】:复选框边框在白色背景下不可见。
我玩了不同的颜色参数但没有成功。
我需要盒子的黑色边框。
是的,有制作自定义复选框的示例。
在所有可绘制示例中,普通框在新形状内都是可见的。
并且android:text=""
中的可绘制形状很窄,没有文字。
但是为什么复选框在通常的 xml 中看起来不太好:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layoutBottom1"
android:layout_
android:layout_
android:orientation="horizontal"
android:background="#FFFFFF"
android:gravity="center" >
<CheckBox
android:id="@+id/checkBottom1"
android:layout_
android:layout_
android:text="AAAA"
android:visibility="visible"
android:textColor="#000000"
android:checked="true" />
</LinearLayout>
有什么想法吗?谢谢!
【问题讨论】:
【参考方案1】:你可以使用属性
android:buttonTint="what you want"
设置复选框边框颜色。
【讨论】:
这也设置了复选框的内部。不是你想要的!【参考方案2】:现在回答为时已晚,但我想分享对我有用的方法。
粘贴下面的代码。它会改变CheckBox
边框颜色和textColor
styles.xml
<style name="MyCheckBox" parent="Theme.AppCompat.NoActionBar">
<item name="colorControlNormal">#000</item> <!-- normal border color change as you wish -->
<item name="colorControlActivated">#000</item> <!-- activated color change as you wish -->
<item name="android:textColor">#FFFF3F3C</item> <!-- checkbox text color -->
</style>
现在在您的 main_activity.xml 中CheckBox
代码下方
<CheckBox android:id="@+id/check_agree"
android:layout_
android:layout_
android:layout_margin="10dp"
android:text="I agree"
android:theme="@style/MyCheckBox"/> <!-- here apply your checkbox style -->
如果上述样式不起作用,则将父主题 parent="Theme.AppCompat.NoActionBar"
替换为 parent="Theme.AppCompat.Light"
。希望它会起作用。
【讨论】:
只有当我在我的主应用程序样式中插入样式项时,它才对我有用。无论如何,谢谢!【参考方案3】:你尝试过here、here和here吗? 根据回答您的问题
But why checkbox does not look okay in usual xml
这是因为有时,android 图形视图无法呈现自定义视图,在这种情况下,您需要在模拟器或设备上运行代码来测试它。
更新 如果你不想使用drawables,那么你也可以在xml中定义drawable shape,比如
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#ffffff" >
</solid>
<stroke
android:
android:color="#ff0000" >
</stroke>
<corners android:radius="5dp" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>
【讨论】:
在 IntelliJ Idea 的预览中,它看起来还不错。但在模拟器和设备上不可见。在您的参考文献中,它们会更改复选标记颜色。但我想更改框边框颜色 因此您需要为框边框设置一个切片。像在您将放置在可绘制文件夹中的图像一样切片。 谢谢,但不明白。切片是什么意思? 切片为您将放置在可绘制文件夹中的图像。无论如何忘记这一点,并检查我的更新答案。也看看this。 我在尝试您的示例的文本框中输入了文本。不,我需要带有可见边框的普通盒子。【参考方案4】:你可以使用它们中的任何一个:
app:buttonTint="color code here"
或
android:buttonTint="color code here"
【讨论】:
【参考方案5】:上面的答案都不适合我,但this one 可以。它建议使用选择器并将其应用于复选框,这对我来说非常有效。
这并不能解释上面显示的复选框的奇怪外观,这就是为什么我不会将此问题标记为重复的原因,但我认为它仍然可以作为解决方案。
【讨论】:
【参考方案6】:对于 API 级别
app:buttonTint="EEEEEE"
对于 API 级别 >= 21,您可以使用:
android:buttonTint="EEEEEE"
【讨论】:
以上是关于如何设置复选框边框颜色的主要内容,如果未能解决你的问题,请参考以下文章