android 高仿ios开关,Android自定义view仿IOS开关效果

本文介绍如何在Android中实现高仿iOS开关效果,通过自定义View,利用onDraw()方法纯手工绘制,包括开关的滑动动画和事件处理。详细讲解了自定义View的onMeasure()、onLayout()、onDraw()方法,以及如何设置初始状态、背景图片和滑动按钮。并提供了完整的代码示例。
摘要由CSDN通过智能技术生成

本文主要讲解如何在 Android 下实现高仿 iOS 的开关按钮,并非是在 Android 自带的 ToggleButton 上修改,而是使用 API 提供的 onDraw、onMeasure、Canvas 方法,纯手工绘制。基本原理就是在 Canvas 上叠着放两张图片,上面的图片根据手指触摸情况,不断移动,实现开关效果。

废话不说,上效果图,看看怎么样

dcf01a432c7c69015cd6464fb4fe8fd9.gif

样式如下:

f90f817fe3078fb6385720bbb763180f.png

网上也有实现这种效果的,但是大都滑动没中间消失的动画,或者是很复杂,今天用简单的绘图方式实现,重点就在onDraw里绘图。

功能点:

不滑出边界,超过一半自动切换(边界判断)

可滑动,也可点击(事件共存)

提供状态改变监听(设置回调)

通过属性设置初始状态、背景图片、滑动按钮(自定义属性)

自定义View的概述

Android 在绘制 View 时,其实就像蒙上眼睛在画板上画画,它并不知道应该把 View 画多大,画哪儿,怎么画。所以我们必须实现 View 的三个重要方法,以告诉它这些信息。即:onMeasure(画多大),onLayout(画哪儿),onDraw(怎么画)。

View的生命周期

2b3686832baf8346a6c181a46679523e.png

在动手写之前,必须先了解以下几个概念:

1.View 的默认不支持 WRAP_CONTENT,必须重写 onMeasure 方法,通过 setMeasuredDimension() 设置尺寸

2.基本的事件分发机制:onClickListener 一定是在 onTouchEvent 之后执行

自定义View的流程

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值