Android自定义view --之--仿“滴滴打车”等车倒计时

本文介绍了如何在Android中实现类似滴滴打车应用的等车倒计时动画,通过分析需求并提出两种实现方案,最终选择使用Path和PathMeasure来动态绘制圆环、圆球和倒计时。详细讲解了PathMeasure的使用方法,并提供了带注释的代码示例。
摘要由CSDN通过智能技术生成

昨天在网上看了一个 html5 仿滴滴出行的等车倒计时动画,感觉不错,今天就试试写了一下。先看一下效果图:


看到这个效果看着很简单,但是就是不知道从何处下手,先分析一下需求大致分为三个模块:

1.一个不变的细圆环,

2.从顶部开始变化的粗圆环,注意是从顶部开始的。

3.就是一个从顶部开始的圆球,和里面的倒计时时间绘制。

大致需求就是这样,你们感觉应该怎么实现的?我先讲一下我看到图的几个实现方案:

1.第一个实现方案:也是我第一反应的解决方案,

我想的是让圆球的 canvas 画布 绕圆心旋转,而且还要保证粗圆环不旋转只跟着圆球增加。这两个一起感觉不好控制。但是细想了一下感觉好麻烦。果断放弃了这种思路

2.第二个方案:在仔细想了一下,圆球的移动不就是在底部圆环上边吗?还有这个粗的圆环不就是可以看成是细圆环的一部分的截取。我只要能动态获取到圆球的圆心不就能绘制圆球和粗圆环了吗?看到这里大家,想到了我们之前的文章中讲过一个 Path的高级用法实现 动态搜索按钮的(Path高级用法链接)。没看过的可以先去看看这篇文章,里面对Path的高级用法从基础到高级,讲的很细致。

好了我们最终的解决方案就是利用 Path,动态获取 圆环的的点坐标,然后绘制圆球和粗圆环。其实这里主要用到的就是 Path中的一个类:PathMeasure为了方便大家学习我还是把我之前的文章的 对 PathMeasure 的讲解复制过来了。如果你已经对这个类非常清楚了,那就直接看例子吧。

类--------PathMeasure字面意思很容易理解--翻译成 路径测量对这就是我们用来测量路径的类。既然是一个类,我们就要看他集体有哪些方法和属性

1.构造方法:

方法名 释义
PathMeasure() 创建一个空的PathMeasure
PathMeasure(Path path, boolean forceClosed) 创建 PathMeasure 并关联一个指定的Path(Path需要已经创建完成)。
一个是有参数,一个无参数。

无参数就很容易理解就是直接创建对象,那有参数呢?

PathMeasure(Path path, boolean forceClosed) ;第一个参数 Path  咿 !这不就是我们的Path 了吗。对既然是测量类,那就是要确定需要测量的那个路径,那第二个参数呢?

第二个参数是用来确保 Path 闭合,如果设置为 true, 则不论之前Path是否闭合,都会自动闭合该 Path(如果Path可以闭合的话)。

2.方法:

返回值 方法名 释义
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WangRain1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值