如何创建圆形的复选框?

Pra*_*ran 6 android android-checkbox

我正面临着在android中创建圆形复选框的问题.我尝试了很多方法,但我的问题没有解决.我创建了形状并应用于复选框,然后问题也没有解决.请帮我如何创建圆形复选框.在此输入图像描述

如何创建如图所示的圆形复选框.

chi*_*g90 31

花了一些时间后,我创建了这个模板,你可以使用它.您可能需要根据需要进行修改.

在activity.xml中

<CheckBox
    android:id="@+id/checkb"
    android:layout_width="115dp"
    android:layout_height="50dp"
    android:button="@drawable/custom_checkbox"
    android:scaleX="3"
    android:scaleY="3"
    android:layout_centerVertical="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginRight="15dp"
    android:layout_marginEnd="15dp" />
Run Code Online (Sandbox Code Playgroud)

在drawable文件夹中创建一个名为custom_checkbox.xml的新xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_checked="true"
        android:drawable="@drawable/checked" />
    <item android:state_pressed="true"
        android:drawable="@drawable/checked" />
    <item android:state_pressed="false"
        android:drawable="@drawable/unchecked" />
</selector>
Run Code Online (Sandbox Code Playgroud)

在drawable文件夹中创建一个名为checked.xml的新xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <corners android:radius="1dp" />
                    <stroke
                        android:width="1dp"
                        android:color="#777" />
                    <gradient
                        android:startColor="#990000"
                        android:centerColor="#990000"
                        android:endColor="#990000"
                        android:angle="270" />
                    <size
                        android:width="30dp"
                        android:height="30dp" />
                </shape>
                </item>

            <item
                android:width="8dp"
                android:height="2dp"
                android:top="20dp"
                android:left="6dp">
                <rotate
                    android:fromDegrees="45">
                    <shape android:shape="rectangle">
                        <solid android:color="#fff"/>
                    </shape>
                </rotate>
            </item>

            <item
                android:width="19dp"
                android:height="2dp"
                android:top="16dp"
                android:left="9dp">
                <rotate
                    android:fromDegrees="-45">
                    <shape android:shape="rectangle">
                        <solid android:color="#fff"/>
                    </shape>
                </rotate>
            </item>
        </layer-list>
    </item>

</selector>
Run Code Online (Sandbox Code Playgroud)

在drawable文件夹中创建一个名为unchecked.xml的新xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
        <corners android:radius="1dp" />
        <stroke
            android:width="1dp"
            android:color="#777" />
        <gradient
            android:startColor="#990000"
            android:centerColor="#990000"
            android:endColor="#990000"
            android:angle="270" />
        <size
            android:width="30dp"
            android:height="30dp" />
    </shape>
Run Code Online (Sandbox Code Playgroud)

未选中时,它看起来如下所示.(您可以在checked.xml之间添加代码,并在未选中复选框时修改顶部和左侧以给出X)

未经检查的州

选中后,它将如下所示

检查状态

如果这有用,请将其标记为答案.

  • 惊人的!让我免于使用背景图像。 (2认同)

Mof*_*uel 7

以前的许多答案都被很好地接受,chirag90 的答案是最好的,但也需要大量编码,在我的答案中,我将重新采用他的概念,但将向您展示如何使用您想要的所有样式创建自己的圆形复选框可绘制对象需要任何编码,然后您将使用此可绘制对象来定义复选框的状态,如 chirag90 的答案

首先去freelogomaker.com并创建你的drawables,它很容易使用,你可以创建任何东西,在网站上转到形状的搜索栏并输入“圆形复选框”然后点击搜索按钮,一个多个drawables的列表将呈现给您,以便您选择

复选框

上面是我选择的可绘制对象,根据需要进行自定义并保存,然后转到appiconmaker.co并使用您创建的可绘制对象生成各种设计尺寸的可绘制对象,例如 mdpi、hdpi、xhdpi 和 xxhdpi,以下是我制作的可绘制对象

在此处输入图片说明 未选中的复选框

在此处输入图片说明 选中复选框

完成后,您可以将 drawables 添加到您的项目中,并在您的 drawables 文件夹中选中和取消选中相应的名称,一旦完成,现在创建 custom_checkbox.xml,就像在 chirag90 的答案中一样

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_checked="true"
        android:drawable="@drawable/checked" />
    <item android:state_pressed="true"
        android:drawable="@drawable/checked" />
    <item android:state_pressed="false"
        android:drawable="@drawable/unchecked" />
</selector>
Run Code Online (Sandbox Code Playgroud)

现在在您的布局中创建您的复选框,如下所示

<CheckBox
 android:id="@+id/checkman"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_alignParentEnd="true"
 android:layout_alignParentRight="true"
 android:layout_centerVertical="true"
 android:layout_marginRight="15dp"
 android:layout_marginEnd="15dp"
 android:button="@drawable/custom_checkbox"
 android:scaleX="0.8"
 android:scaleY="0.8" />
Run Code Online (Sandbox Code Playgroud)

你我然后修改android:scaleX="0.8"android:scaleY="0.8"以适应你的布局

这是我项目的结果

在此处输入图片说明 未经检查

在此处输入图片说明 检查

希望这能帮助很多人