本文主要讲解如何在Android下实现高仿iOS的开关按钮,并非是在安卓自带的ToggleButton上修改,而是使用API提供的alt=" Android自定义观点仿iOS开关效果">
样式如下:
,
网上也有实现这种效果的,但是大都滑动没中间消失的动画,或者是很复杂,今天用简单的绘图方式实现,重点就在onDraw里绘图。
-
<李>不滑出边界,超过一半自动切换(边界判断)李>
<李>可滑动,也可点击(事件共存)李>
<李>提供状态改变监听(设置回调)李>
<李>通过属性设置初始状态,背景图片,滑动按钮(自定义属性)李>
<>强自定义视图的概述强>
Android在绘制视图时,其实就像蒙上眼睛在画板上画的画,它并不知道应该把视图画多大,画哪儿,怎么画,所以我们必须实现视图的三个重要方法,以告诉它这些信息。即:onMeasure(画多大),onLayout(画哪儿),onDraw(怎么画)。
在动手写之前,必须先了解以下几个概念:
1。视图的默认不支持WRAP_CONTENT,必须重写alt=" Android自定义观点仿IOS开关效果">
<强>开始动手强>
1。导入开关的样式文件
& lt; resources> & lt; !——基本应用程序的主题。——比; & lt;样式名=" AppTheme "父=癟heme.AppCompat.Light.DarkActionBar”比; & lt; !——自定义你的主题。——比; & lt;项目名称=" colorPrimary "祝辞@color/colorPrimary & lt;项目名称=" colorPrimaryDark "祝辞@color/colorPrimaryDark & lt;项目名称=" colorAccent "祝辞@color/colorAccent & lt;/style> & lt; !——高仿IOS7开关——样式——比; & lt; declare-styleable name=" SwitchButton比; & lt; attr name==把丈?癰uttonColor”格式比; & lt;/declare-styleable> & lt;/resources>
2。开始自定义,重点在onDraw ()
/* * *作者:和 *时间:2018/3/20。 *电子邮件:2911743255 @qq.com *描述: *细节:仿IOS开关 */公开课SwitchButton扩展视图{//画笔 私人最终油漆mPaint=new油漆(); 私有静态最终双MBTNHEIGHT=0.55; 私有静态最终int抵消=3; 私人int mHeight; 私人浮动mAnimate=0 l;//此处命名不规范,目的和Android自带的开关有相同的用法 私人布尔检查=false; 私人mScale浮动; 私人int mSelectColor; 私人> @Override 保护空白>mBtnSwitch.setChecked(布尔);
好了,自定义工作全部完成! !
那么300行左右的代码完成了我们的仿iOS SwitchButton的控件SwitchView
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。