android - 在android中定义自定义复选框

标签 android android-checkbox

如何在android中制作自定义复选框

我当前的 XML::

<LinearLayout
            android:id="@+id/linearLayout_individualdays"
            android:layout_width="wrap_content"
            android:layout_height="40dp"
            android:layout_below="@+id/linearLayout_type_of_days"
            android:gravity="center|top"
            android:orientation="horizontal"
            android:paddingLeft="5dp"
            android:paddingTop="10dp"
            android:visibility="gone" >

            <CheckBox
                android:id="@+id/checkBox1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Mon" />

            <CheckBox
                android:id="@+id/checkBox2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Tue" />

            <CheckBox
                android:id="@+id/checkBox3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Wed" />

            <CheckBox
                android:id="@+id/checkBox4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Thu" />

        </LinearLayout>

输出::

enter image description here

但是如何制作像下面这样的东西::

enter image description here

  • 此处蓝色边框显示其选中
  • 否则未选中
  • 必须是复选框

希望我说清楚了!

最佳答案

使用此代码

drawable文件夹中的select.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>

drawable文件夹中的deselect.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="#000000" >
        </stroke>
    <corners android:radius="5dp" />

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

和自定义复选框

public class checkbox extends CheckBox{



    public checkbox(Context context, AttributeSet attrs) {
            super(context, attrs);
            //setButtonDrawable(new StateListDrawable());
        }
        @Override
        public void setChecked(boolean t){
            if(t)
            {
                this.setBackgroundResource(R.drawable.select);
            }
            else
            {
                this.setBackgroundResource(R.drawable.deselect);
            }
            super.setChecked(t);
        }
        }

复选框

 <com.example.checkbox.checkbox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:button="@null"
        android:checked="true"
        android:text="checked" />

您可以将 select.xml 和 deselect.xml 中的颜色更改为您想要的颜色

关于android - 在android中定义自定义复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20015463/

相关文章:

java - Android- java.lang.IllegalStateException:

Android Activity onDestroy() 并不总是被调用,如果被调用,只会执行部分代码

android2.1 ListView引用

android - 如何使用复选框将 Android 联系人添加到 ListView 中

css - 使用 CSS 属性选择器设置选中复选框的样式。 (安卓 GMAIL)

android - Robolectric 中的 getSystemService 返回具有空上下文的对象

android - Android内存管理和Linux内存管理有什么区别?

java - 单击按钮时如何将多个复选框值发送到 Firebase 数据库 Android

xamarin.android - 更改 Xamarin Android 复选框的大小

Android 可检查菜单项