效果图
绘制波浪效果
- 上图中有4条贝塞尔曲线(当然你也可以利用正弦曲线画,近段时间接触了贝塞尔曲线,所以用它来练手,如不了解贝塞尔曲线,麻烦先去百度),两条在屏幕外,两条在屏幕外
- 将这四条曲线闭合。
- 然后将图中每条贝塞尔曲线的点(起点,控制点,终点)按照一定速率向右偏移
- 当 P1点移动到 P5点的位置,动画结束一次。
- 只要不断重复以上的动画,则产生了波浪的效果。
- 仔细观察GIF 图可以发现,由于深色波浪后还有浅色的波浪,导致波浪有一定立体感,浅色波浪只需要基于深色波浪的位置向左作一定偏移即可。
波浪代码
定义
测量完 view 的实际宽度后,设置各个点的值,请耐心看如何设置每个点的坐标,亦可根据自己需求设置
在 onDraw 方法中执行,其中变量 move 是向右偏移的量
执行循环动画,不断更改move的值,从0增加到view的宽度
实现的效果
如何将波浪困在圆内
用 Path 画一个圆,然后利用 Path 的特性,得到圆 path与波浪path 的交集,不需要再画 wavePath,画出这个交集 path 即可 (** PS: 需要4.4.2以上)**
水平面上升
当前 view 的高度为圆的直径即****2radius****,根据当前进度计算出水平面高度= 直径进度( 0~1 ),根据高度改变贝塞尔曲线相关点的 Y 坐标
用途
- 显示下载进度
- 显示电量
- 显示手机可用内存占比
...