android自定义switch颜色

效果图:

原生样式和自己app的主题颜色不搭配,就可以这样自定义颜色样式。以下代码均可直接复制粘贴使用,且均有注释。

实现:

1、 新建drawable/switch_custom_thumb_on.xml(滑块开启状态 )

<?xml version="1.0" encoding="utf-8"?>
<!-- 滑块开启状态 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">

    <!-- 主色 -->
    <solid android:color="#FFFFFF" />

    <!-- 尺寸 -->
    <size
    android:width="20dp"
    android:height="20dp" />

    <!-- 边框 -->
    <stroke android:width="1dp"
        android:color="#CFD1CF"/>

</shape>

效果图如下:

 2、 新建drawable/switch_custom_thumb_off.xml(滑块关闭状态 )

这里因为我的需求是开关,滑块状态都不变,所以直接复制上面的,你们可以更具自己的需求修改。 

3、 新建drawable/switch_custom_thumb_selector.xml(滑块配置文件 ,用于根据开关状态选择对应的样式)

<?xml version="1.0" encoding="utf-8"?>
<!-- 滑块控制器 -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 通过 android:state_checked 判断 是否开关-->
    <!-- 开启样式 -->
    <item android:drawable="@drawable/switch_custom_thumb_on" android:state_checked="true" />
    <!-- 关闭样式 -->
    <item android:drawable="@drawable/switch_custom_thumb_off" android:state_checked="false" />
</selector>

 4、 新建drawable/switch_custom_track_on.xml(轨道开启状态 )

<?xml version="1.0" encoding="utf-8"?>
<!-- 轨道开启状态 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!-- 主色 -->
    <solid android:color="#4BD764" />

    <!-- 边框 -->
    <stroke
    android:width="5dp"
    android:color="#00000000" />

    <!-- 4个角的弧度 -->
    <corners android:radius="20dp" />

</shape>

效果图如下: 

 

 5、新建drawable/switch_custom_track_off.xml(轨道关闭状态 )

<?xml version="1.0" encoding="utf-8"?>
<!-- 轨道关闭状态 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!-- 主色 -->
    <solid android:color="#E3E3E3" />

    <!-- 边框 -->
    <stroke
    android:width="5dp"
    android:color="#00000000" />

    <!-- 4个角的弧度 -->
    <corners android:radius="20dp" />

</shape>

 效果图如下:

6、 新建drawable/switch_custom_track_selector.xml(轨道配置文件 ,用于根据开关状态选择对应的样式)

<?xml version="1.0" encoding="utf-8"?>
<!-- 轨道控制器 -->
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/switch_custom_track_on" android:state_checked="true" />
    <item android:drawable="@drawable/switch_custom_track_off" android:state_checked="false" />
</selector>

 7、最后在switch组件那里绑定这两个控制器即可

<Switch
            android:id="@+id/isShowWssLog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:thumb="@drawable/switch_custom_thumb_selector"
            android:track="@drawable/switch_custom_track_selector"/>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/129170.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WGCLOUD实践 - wgToken怎么使用

wgcloud中的wgToken&#xff0c;是server和agent通信的密钥&#xff0c;相当于密码 server配置文件中的wgToken值和agent配置文件中的wgToken值&#xff0c;需要相同&#xff0c;否则agent将无法给server上报数据 server配置文件如下&#xff1a; #server和agent的通信密钥&a…

Android修行手册-POI操作Excel实现超链接并且变为蓝色

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

阿里云双11优惠云服务器99元一年,4年396元

阿里云99元服务器新老用户均可以买&#xff0c;你没看错&#xff0c;老用户可以买&#xff0c;活动页面 aliyunfuwuqi.com/go/aliyun 配置为云服务器ECS经济型e实例、2核2G、3M固定带宽、40G ESSD Entry云盘&#xff0c;并且续费不涨价&#xff0c;原价99元即可续费&#xff0c…

论文阅读[121]使用CAE+XGBoost从荧光光谱中检测和识别饮用水中的有机污染物

【论文基本信息】 标题&#xff1a;Detection and Identification of Organic Pollutants in Drinking Water from Fluorescence Spectra Based on Deep Learning Using Convolutional Autoencoder 标题译名&#xff1a;基于使用卷积自动编码器的深度学习&#xff0c;从荧光光谱…

【考研数据结构代码题3】用栈实现十进制数转为八进制数

题目&#xff1a;将十进制数m1348转换成八进制数 难度&#xff1a;★ 算法思路&#xff1a;十进制转八进制的核心原理是“用辗转相除法不断对8取余&#xff0c;最后将余数反向输出”&#xff0c;即先求出来的余数后输出&#xff0c;符合“先进后出”的栈的特性&#xff0c;故设…

WorkPlus安全专属移动数字化航空母舰,助力企业掌控业务和生态

在当今数字化发展的时代&#xff0c;企业迫切需要一种安全专属的移动数字化平台&#xff0c;以助力企业掌控业务和生态&#xff0c;实现全面发展。作为一款安全专属的移动数字化“航空母舰”&#xff0c;WorkPlus凭借其强大的功能和灵活性&#xff0c;成为了企业的首选&#xf…

node 第十七天 使用rsa非对称加密 实现前后端加密通信 JSEncrypt和node-rsa

什么是非对称加密 加密过程需要两个钥匙, 公钥和私钥 其中公钥用于加密明文, 私钥用于解密公钥加密的密文, 解密只可以用私钥 公钥和私钥是一对一的关系 公钥可以发送给用户, 不用担心泄露 私钥需要保存在服务端, 不能泄露 例如: 战场上&#xff0c;B要给A传递一条消息&#xf…

Python语法基础(变量 注释 数据类型 输入与输出 运算符 缩进)

目录 变量变量命名规则变量的类型变量的创建变量的作用域 注释的方法数据类型对象和引用的概念Number(数字)数据转换 输入与输出输入函数输出函数输出函数的end参数输出格式多行语句 运算符算术运算符赋值运算符三目运算符运算符的优先级 缩进缩进格式注意事项层级嵌套 变量 标…

css实战——清除列表中最后一个元素的下边距

需求描述 常见于列表的排版&#xff0c;如文章列表、用户列表、商品列表等。 代码实现 <div class"listBox"><div class"itemBox">文章1</div><div class"itemBox">文章2</div><div class"itemBox"…

软件测试银行项目到底“香”到哪里?

为什么做金融类软件测试&#xff1f; 做金融类软件测试的原因有以下几个&#xff1a; 保障客户资产安全&#xff1a;金融类软件通常涉及大量的客户财产和敏感信息&#xff0c;因此软件测试可以帮助发现潜在的漏洞和风险&#xff0c;从而确保客户的资产和信息得到充分的保护。…

openGauss学习笔记-119 openGauss 数据库管理-设置数据库审计-设置文件权限安全策略

文章目录 openGauss学习笔记-119 openGauss 数据库管理-设置数据库审计-设置文件权限安全策略119.1 背景信息119.2 数据库程序目录及文件权限119.3 建议 openGauss学习笔记-119 openGauss 数据库管理-设置数据库审计-设置文件权限安全策略 119.1 背景信息 数据库在安装过程中…

dRep-基因组质控、去冗余及物种界定

文章目录 Install依赖关系 常用命令常见问题pplacer线程超过30报错当比较基因组很多&#xff08;>4096&#xff09;有了Bdv.csv文件后无需输入基因组list 超多基因组为什么需要界定种&#xff1f;dRep重要概念次级ANI的选择Minimum alignment coverage3. 选择有代表性的基因…

使用递归图 recurrence plot 表征时间序列

在本文中&#xff0c;我将展示如何使用递归图 Recurrence Plots 来描述不同类型的时间序列。我们将查看具有500个数据点的各种模拟时间序列。我们可以通过可视化时间序列的递归图并将其与其他已知的不同时间序列的递归图进行比较&#xff0c;从而直观地表征时间序列。 递归图 …

pytorch基础语法问题

这里写目录标题 pytorch基础语法问题shapetorch.ones_like函数和torch.zeros_like函数y.backward(torch.ones_like(x), retain_graphTrue)torch.autograd.backward参数grad_tensors: z.backward(torch.ones_like(x))来个复杂例子z.backward(torch.Tensor([[1., 0]])更复杂例子实…

供暖系统如何实现数据远程采集?贝锐蒲公英高效实现智慧运维

山西某企业专注于暖通领域&#xff0c;坚持为城市集中供热行业和楼宇中央空调行业提供全面、专业的“智慧冷暖”解决方案。基于我国供热行业的管理现状&#xff0c;企业成功研发并推出了可将能源供应、管理与信息化、自动化相融合的ICS-DH供热节能管理系统。 但是&#xff0c;由…

【CMU 15-445】Proj1 Buffer Pool Manager

Buffer Pool Manager 通关记录Task1 LRU-K Replacement PolicyTask2 Disk SchedulerTask3 Buffer Pool ManagerFlushPageFlushAllPagesUnpinPageNewPageFetchPageDeletePage Optimizations CMU-15445汇总 本文对应的project版本为CMU-Fall-2023的project1 由于Andy要求&#xf…

我的AIGC部署实践03

我的AIGC部署实践03 这会是AIGC部署实践的第三回&#xff0c;用免费的GPU部署自己的stable-diffusion下面我们就开始吧。 1.创建项目 创建项目的镜像及数据集如下&#xff1a; 选择完成后点击创建&#xff0c;代码选择暂不上传。 2.初始化开发环境实例 点击最右侧的“开发…

懵了,面试官问我Redis怎么测,我哪知道!

有些测试朋友来问我&#xff0c;redis要怎么测试&#xff1f;首先我们需要知道&#xff0c;redis是什么&#xff1f;它能做什么&#xff1f; redis是一个key-value类型的高速存储数据库。 redis常被用做&#xff1a;缓存、队列、发布订阅等。 所以&#xff0c;“redis要怎么测试…

【C/C++笔试练习】内联函数、哪些运算符不能重载、拷贝构造函数、const类型、函数重载、构造函数、空类的大小、井字棋、密码强度等级

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;内联函数&#xff08;2&#xff09;哪些运算符不能重载&#xff08;3&#xff09;拷贝构造函数&#xff08;4&#xff09;const类型&#xff08;5&#xff09;函数重载&#xff08;6&#xff09;构造函数&#xff08;7&a…

云数据安全:在数字时代保护您的宝贵资产

在数字化时代&#xff0c;云计算已经成为企业和个人数据存储和处理的主要方式。然而&#xff0c;与之相伴而来的是日益严峻的数据安全挑战。本文将探讨云数据安全的重要性以及如何在云环境中保护您的数据。 一、云计算的崭新时代 云计算为组织提供了无与伦比的灵活性和效率&…