自定义Switch(秒懂)
效果图
两个单词
1.thumb:指的是可以滚动的圆球
2.track:指的是圆球下面的轨道
如果看不懂,那再看两张图
不难看出我们需要定义4个xml文件,分别是
closed_track.xml:用于按钮关闭时,track的样式
open_track.xml:用于按钮打开时,track的样式
closed_thumb.xml:用于按钮关闭时,thumb的样式
open_thumb.xml:用于按钮打开时,thumb的样式
另外我们还需要一个track选择器和thumb选择器,用于告诉按钮
此时应该去调用哪一个xml(上面定义了4个)
最终最终我们需要定义6个xml(4个样式+2个选择器)
xml都放在drawable文件下
第1个closed_track.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!--设置高度,这里设置宽度没有用--><size android:height="40dp" /><!--设置弧度--><corners android:radius="20dp" /><!--设置渐变,两个颜色一样则没有渐变效果--><gradient
android:endColor="#888888"android:startColor="#888888" />
</shape>
第2个open_track.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!--设置高度--><size android:height="40dp"/><!--设置弧度--><corners android:radius="20dp"/><!--设置渐变,两个颜色一样则没有渐变效果--><gradient
android:endColor="#33da33"android:startColor="#33da33"/>
</shape>
第3个closed_thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!--设置高度,注意要设置宽度--><size
android:width="40dp"android:height="40dp" /><!--设置弧度--><corners android:radius="20dp" /><!--设置渐变,两个颜色一样则没有渐变效果--><gradient
android:endColor="#fff"android:startColor="#fff" /><!--边缘一层灰色--><stroke
android:width="2dp"android:color="#888888" />
</shape>
第4个closed_thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!--设置高度--><size android:height="40dp" /><!--设置弧度--><corners android:radius="20dp"/><!--设置渐变,两个颜色一样则没有渐变效果--><gradient
android:endColor="#eeeeee"android:startColor="#eeeeee"/><!--边缘一层绿色--><stroke
android:width="2dp"android:color="#33da33" />
</shape>
第5个track.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/open_track" android:state_checked="true" /><item android:drawable="@drawable/closed_track" android:state_checked="false" />
</selector>
第6个thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/open_thumb" android:state_checked="true" /><item android:drawable="@drawable/closed_thumb" android:state_checked="false" />
</selector>
最后在布局文件引用下选择器就可以了
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center"android:orientation="vertical"><Switch
android:layout_width="wrap_content"android:layout_height="wrap_content"android:thumb="@drawable/thumb"android:track="@drawable/track" />
</LinearLayout>
https://blog.csdn.net/qq_34763699/article/details/54954394
自定义Switch(秒懂)相关推荐
- android 自定义switch控件,Android中switch自定义样式
android 原生开关按钮控件 Switch 提供样式自定义方式,可供我们修改为适合我们开发使用的样式控件,自定义样式过程如下: 自定义switch切换drawable 新建swith_thumb. ...
- autojs自定义Switch
牙叔教程 简单易懂 使用场景 自定义控件 效果展示 autojs版本 8.8.20-0 为什么自定义控件 为了UI界面漂亮 怎样自定义控件 autojs软件自带的示例 / 界面控件 / 自定义控件 , ...
- 微信小程序,自定义switch组件
在我看来这个主要是样式,相当于自己重新写一个switch样式,下面直接看源码 目录结构 switch.wxml <view class="switch"><vie ...
- Android 自定义Switch样式
Android 自定义Switch样式 效果展示 踩坑 1. 无效的宽高? 实现代码 1. 轨道track 2. 拇指thumb 3. 使用switch 效果展示 踩坑 1. 无效的宽高? 通常情况下 ...
- java switch小程序,小程序自定义switch组件
如上图,小程序api中的switch组件只能自定义颜色,不能自定义宽高,所以就开始了自己写switch组件. 自定义组件样式 switch组件样式大致如图,样式思路:未选中时为一个长方形有圆角按钮,和 ...
- Android 自定义Switch,仿微信开关键Switch
switch (changeFragmentEvent.getViewId()) {//启动设备(安卓接收)case 1:textView.setText("vvvvv555"+c ...
- android switch自定义样式,Android自定义Switch样式
如图自定义的Switch样式: 5421606984766_.pic.jpg 需要注意的是:switch的大小是跟thumb的大小有关 下面以样式二为例: switch_track_selector_ ...
- 自定义Switch背景带文字
搞一个switch控件看了网上的很多都是用的selector去定义thumb 跟 track,这样可以改变它的背景跟小圆点.但没有办法设置文字,源码给了设置文字的方法,也只能设置再小圆点上.所以索性自 ...
- QtQuick PC端开发实战系列(18)_自定义Switch
总目录传送门 本博文技术等级: ★★☆☆☆☆☆☆☆☆ 我们先看看原始的switch什么效果 https://doc.qt.io/qt-5/qml-qtquick-controls2-switch.ht ...
最新文章
- 09 Storage Structure and Relationships
- 树莓派linux编译不了动态库,linux系统下的树莓派与Qt 5.12.3源码的交叉编译
- java实现WGS84转其他地图坐标
- 如果出现这些,你就必须跳槽了
- python之常用的数据类型
- JavaScript函数,思维导图
- 把iPad上的视频推送到大麦盒子去
- 计算机声音管理器不见了,Realtek高清晰音频管理器怎么找不到打开教程
- 想晋升Android架构师——学习这些核心技术够用吗?
- c语言最大乘积问题,利用C语言来求最大连续子序列乘积的方法
- 【历史上的今天】5 月 26 日:美国首个计算机软件程序专利;苹果市值首次超越微软;Wiki 的发明者出生
- 案例 7-1.3 寻找大富翁(25 分)
- 误删暂存代码的恢复方法
- Leetcode3:最长不重复子串
- CentOS 8 安装+SSH+Cmatrix过程
- vscode保存代码,浏览器自动刷新页面
- 经济学通识 (第二版) 薛兆丰
- 重要通知|Strata Data Conference北京站最优惠票价今天截止。
- 泉州师范学院计算机课程表,泉州师范学院软件学院 2010 级第 四 学期课程表
- UnityShader_倒影,水波倒影(1)
热门文章
- 点仙人掌(cactus)
- xmind 文件 打开后会在当前目录生成 configuration,p2和workspace目录,artifacts.xml文件 解决
- jquerymobile-16 select menu
- Files and Directories
- CAD图纸的转换和批量打印
- 手机动态:摩托罗拉edge s pro搭载骁龙870处理器
- 算法的浅论:算法前序
- 欲登千层楼,又何惧寒风
- 游戏评测HTML5网站模板是一款适合游戏视频 游戏评测 游戏介绍网站模板。
- 数据分析师三个等级_数据分析课|这三个等级的数据分析师报考条件,一定是你需要的...