【Android】CheckBox的自定义样式和使用

news/2024/12/22 20:04:45/

需求

在登录页面。我们需要有一个复选框,让用户进行勾选,同意我们的流氓政策和协议,不然就不让用。

实现效果

未选择

在这里插入图片描述

已选择

在这里插入图片描述

我们知道,这个CheckBox的默认样式是一个正方形,现在改成一个圆形的话,首先需要准备两个图案。

创建一个文件
baseline_checked_circle_24.xml
这个文件长这样
在这里插入图片描述

<vector xmlns:android="http://schemas.android.com/apk/res/android"android:width="24dp"android:height="24dp"android:tint="#FFFFFF"android:viewportWidth="24"android:viewportHeight="24"><pathandroid:fillColor="@android:color/white"android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM10,17l-5,-5 1.41,-1.41L10,14.17l7.59,-7.59L19,8l-9,9z" />
</vector>

再创建一个这样的图片
baseline_uncheck_circle_outline_24.xml
在这里插入图片描述

<vector xmlns:android="http://schemas.android.com/apk/res/android"android:width="24dp"android:height="24dp"android:tint="#382D2D"android:viewportWidth="24"android:viewportHeight="24"><pathandroid:fillColor="@android:color/white"android:pathData="M16.59,7.58L10,14.17l-3.59,-3.58L5,12l5,5 8,-8zM12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z" />
</vector>

创建一个选择器文件 checkbox_circle.xml

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

我们还可以创建这个选择器文件
checkbox_color_selector.xml
这是圆圈外面的颜色变换

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 选中状态下的颜色 --><item android:color="#FFFFFF" android:state_checked="true" /><!-- 未选中状态下的颜色 --><item android:color="#382D2D" android:state_checked="false" />
</selector>

在布局文件

        <CheckBoxandroid:id="@+id/login_cb"android:layout_width="wrap_content"android:layout_height="@dimen/dp_20"android:background="#00FFFFFF"android:button="@drawable/checkbox_circle"android:buttonTint="@color/checkbox_color_selector"android:checked="true"android:paddingStart="@dimen/dp_5"android:text="勾选即同意"android:textColor="#FFFFFF"android:textSize="@dimen/sp_12" />

在Activity里面

loginCb.setOnCheckedChangeListener { _, isChecked ->if(isChecked){//选中}else{//未选中}
}

http://www.ppmy.cn/news/766217.html

相关文章

证件照尺寸大小收集整理

证件照尺寸有很多种证件&#xff0c;不止一种&#xff0c;所以证件照尺寸也都是不同的 具体尺寸大小如下 1、第二代身份证 (26毫米32毫米) 2、驾驶证 (22毫米32毫米) 3、黑白小一寸 (22毫米32毫米) 4、彩色小一寸 (27毫米38毫米) 5、彩色大一寸 (40毫米55毫米) 6、普通证件照…

各大应用商店APP发布截图尺寸

一、360手机助手 截图尺寸要求&#xff1a;不小于800*480&#xff08;480*800&#xff09;&#xff0c;单张图片不能超过3M。请去除截图中的顶部通知栏。 应用图标要求&#xff1a; 要求与安装包中图标一致。尺寸&#xff1a;512*512PX&#xff0c;圆角半径弧度&#xff1a;7…

快速备份邮件到新服务器

需求场景 自建邮局后&#xff0c;遇到了意料中的问题&#xff1a;迁移邮件到新邮局&#xff0c;即把原来邮箱里的邮件全部复制到新邮箱。 工具介绍 imapsync是一款强大的工具&#xff0c;用于同步两个邮件服务器之间的数据。它支持IMAP协议&#xff0c;可以轻松地将邮件、文件…

C++学习 数组

目录 数组 一维数组 数组名 案例&#xff1a;冒泡排序 二维数组 数组名 数组 数组就是一个集合&#xff0c;里面存放了相同类型的数据元素。 下面的数字对应为数组的下标(索引)&#xff0c;可以看到索引范围为0~数组长度-1 特点&#xff1a; 数组中数据元素的数据类型相同。…

离线状态下Oracle安装所需依赖(oel镜像中有,需要将oel镜像做成yum源)

1.创建一个用于挂载oel镜像的路径 [rootfan102 ~]# mkdir -p /mnt/cdrom [rootfan102 ~]# cd /opt [rootfan102 ~]# ls2.将镜像挂载到指定路径 [rootfan102 ~]# mount -t iso9660 -o loop OracleLinux-R7-U9-Server-x86_64-dvd.iso /mnt/cdrom3.切换到yum源目录 [rootfan102…

千层浪软件下载_千层浪app聚合

千层浪app聚合是一款非常优质的直播交友平台。这里汇聚了超多高颜值的主播&#xff0c;每天24小时在线为你直播&#xff0c;随时打开都可以看到不同类型的直播&#xff0c;而且画质都很高清&#xff0c;也没有延迟。如果你喜欢的话&#xff0c;那么就不妨下载试试看吧&#xff…

2023 最新一键下载百度网盘/阿里云盘/百度文库/道客巴巴/原创力文档

苏生不惑第415 篇原创文章&#xff0c;将本公众号设为星标&#xff0c;第一时间看最新文章。 之前分享过录制了个视频&#xff1a;2022年11月一键下载百度网盘/百度文库/豆丁/道客巴巴/原创力文档 &#xff0c;2023年再更新下 。 爱奇艺万能联播 爱奇艺万能联播有电脑版和手机版…

博客积分上六千了

博客积分上六千了 记录自己学习的过程&#xff0c;也是一种学习的动力。