2014-10-19 185 views
22

复选框边框在白色背景上不可见。如何设置复选框边框颜色

enter image description here

我打了没有成功不同的颜色参数。 我需要箱子的黑色边框。 是的,有自定义复选框的例子。 在所有可绘制的示例中,普通框在新形状内部可见。 而绘制形状狭窄而不机器人文字:=“”

enter image description here

但为什么复选框不平常的xml看行不行:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
         android:id="@+id/layoutBottom1" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:orientation="horizontal" 
         android:background="#FFFFFF" 
         android:gravity="center" 
       > 
      <CheckBox 
        android:id="@+id/checkBottom1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="AAAA" 
        android:visibility="visible" 
        android:textColor="#000000" 
        android:checked="true" 
        /> 

     </LinearLayout> 

任何想法?谢谢!

回答

5

您是否尝试过here,herehere
随着每回答你的问题

But why checkbox does not look okay in usual xml 

那是因为有时,Android的图形视图是无法呈现自定义视图,在这种情况下,你需要运行在模拟器或测试设备的代码出。

UPDATE 在您不想使用绘图资源的情况下,那么你也可以在XML中定义一样

<?xml version="1.0" encoding="utf-8"?> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" > 

     <solid android:color="#ffffff" > 
     </solid> 

     <stroke 
      android:width="2dp" 
      android:color="#ff0000" > 
     </stroke> 
<corners android:radius="5dp" /> 

    <padding 
     android:bottom="4dp" 
     android:left="4dp" 
     android:right="4dp" 
     android:top="4dp" /> 
    </shape> 
+1

在IntelliJ Idea的预览中,它看起来没问题。但在仿真器和设备上不可见。在你的参考文献中,他们改变复选标记的颜色但我想改变框边框颜色 – Niaz 2014-10-19 05:53:15

+0

因此,您需要为框边框设置一个切片。切片,如您将放置在可绘制文件夹中的图像。 – Antrromet 2014-10-19 06:04:50

+0

谢谢,但没有理解。你的意思是什么? – Niaz 2014-10-19 06:07:34

42

的绘制形状,您可以使用属性

android:buttonTint="what you want"设置你复选框边框颜色。

+0

Caio Lucas Alcantara谢谢 – 2015-09-24 11:46:48

+17

但只能从API级别21获得...... – alexscmar 2015-10-19 08:25:23

+3

这也会设置复选框的内部。不是你想要的! – 2016-09-14 16:22:23

21

回答已经太迟了,但我想分享一下对我有用的东西。 粘贴以下代码。

<CheckBox android:id="@+id/check_agree" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="10dp" 
      android:text="I agree" 
      android:theme="@style/MyCheckBox"/> <!-- here apply your checkbox style --> 

如果上面款式不那么工作便会改变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代码用parent="Theme.AppCompat.Light"替换父主题parent="Theme.AppCompat.NoActionBar"。希望它能起作用。

+0

只有当我在我的主应用程序样式中插入样式项时,它才适用于我。不管怎样,谢谢! – 2016-11-01 11:06:21