Android中的自定义循环复选框

时间:2016-08-05 21:45:19

标签: android checkbox material-design android-appcompat

我正在努力让Google应用照片选择用户界面。我正在使用Appcompat复选框来实现这一目标而不是成功。我正在做的步骤,  1.将复选框背景设置为自定义圆形  2.在xml中定义自定义形状

这是我的复选框xml看起来像,

 <android.support.v7.widget.AppCompatCheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/checkBox"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:button="@drawable/custom_checkbox"
            android:background="@drawable/checkbox_drawable"
            />

我的自定义复选框背景

   <shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="oval">
    <stroke
       android:width="1dp"
       android:color="#78d9ff"/>
    <solid
    android:color="#79bfea"/>
   </shape>

我的复选框按钮,

<selector>
<item android:drawable="@drawable/checkbox_drawable"
      android:state_checked="false"/>
    <item android:drawable="@drawable/selected_check"
      android:state_checked="true"/>
 </selector>

我甚至从android:background更改为android:按钮..没有给我圆形复选框..任何帮助表示赞赏?我应该使用浮动动作栏吗?还是一个观点?有什么建议吗?

4 个答案:

答案 0 :(得分:2)

自定义复选框,带有两个可绘制图像。

1。 .xml 文件

<android.support.v7.widget.AppCompatCheckBox
   android:id="@+id/checkBox"
   android:layout_width="40dp"
   android:layout_height="40dp"
   android:layout_gravity="center"
   android:background="@drawable/checkbox_selector"
   android:button="@color/white"
   android:checked="true" />

2。 drawable 文件夹中创建 checkbox_selector.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:drawable="@drawable/cancel"
       android:state_checked="false"/>
   <item android:drawable="@drawable/checked"
       android:state_checked="true"/>
</selector>

3. 从以下链接 drawable 文件夹中添加 checked.png cansel.phd 图片< / p>

https://icons8.com/icon/set/yes/all

https://icons8.com/icon/set/cross/all

4. :复选框点击事件

AppCompatCheckBox checkBox = (AppCompatCheckBox) view.findViewById(R.id.checkBox);

checkBox.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {

       if (checkBox.isChecked()){
      checkBox.setChecked(false);
       }else {
         checkBox.setChecked(true);
       }
         }
});

答案 1 :(得分:0)

当你想将它用作按钮属性时,你需要为你的drawable赋予大小。

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
   <stroke
       android:width="1dp"
       android:color="#78d9ff"/>
   <solid android:color="#79bfea"/>
   <size
       android:width="20dp"
       android:height="20dp"/>
</shape>

使用android:button适用于CheckBox。

此外,由于这是一个复选框,因此您应该使用选择器来检查和取消选中状态。

选择器的一个例子是

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:drawable="@drawable/normal"
          android:state_checked="false"/>
    <item android:drawable="@drawable/checked"
          android:state_checked="true"/>
    <item android:drawable="@drawable/normal"/>
</selector>

答案 2 :(得分:0)

你现在可能不会看,但是我的代码似乎带有复选框的圆形图像,请看看我在另一个帖子上给出的答案。

Click here to view answer on another thread

答案 3 :(得分:0)

在链接中的问题上检查我的答案,这样您就可以创建和自定义复选框,而无需进行编码

answer here