美文网首页
android 属性动画——贝塞尔曲线

android 属性动画——贝塞尔曲线

作者: void_Zhao | 来源:发表于2017-03-30 17:08 被阅读0次

有段时间没写了,最近也有点忙,前段时间看见个有意思的动画,在这里自己学习一下,作为记录,原项目地址

https://github.com/saulmm/Curved-Fab-Reveal-Example

好了现在开始搞起

先看效果图

没有见过贝塞尔曲线的小伙伴肯定懵逼了,怎么实现呢,其实这个动画效果就是贝塞尔曲线实现的,不知道的可以去问下度娘。

直接看代码:

activity没什么好看的,主要内容在fragment里,按钮点击事件执行方法:

可以看出,用到了ObjectAnimator属性动画,看一下ofObject()参数

target:传入需要进行属性动画的对象;

propertyName:动画的属性名称;

TypeEvaluator:将在每个动画帧上调用,以在Object值之间提供必要的插值(第四个参数)以导出动画值。就是通过贝塞尔曲线公式算出当前进度点所在的位置。

values:动画随时间变化的一组值。就是路径集合

这时候再看“fabLoc”这个有什么用,你会发现代码里有个这样方法:

打了日志,你就会发现在动画执行时将会不断调用这个方法,这个基于ObjectAnimation的实现原理定义:定义setFabLoc函数。参数为路径信息对象,来设置动画的对象的位置。

我们再看new PathEvaluator();

这里就是通过贝塞尔曲线公式计算当前进度所在的坐标点,然后通过反射调用setFabLoc时函数的传参

继续看path.getPoints().toArray();这个就是一个添加点坐标的集合

PathPoint类包含了重置起点的路径,三阶贝塞尔移动路径,直线移动的路径;

继续设置动画属性anim.setInterpolator(newAccelerateInterpolator());是渐变加速度还是直接加速度等等,这里设置默认;

然后设置动画时长,就可以start了;

好了到这里,整个贝塞尔曲线动画已经结束,

至于变大,渐变可以看一下

相关文章

  • android 水波纹+小船漂浮实现

    如图 实现思路贝塞尔曲线+属性动画 1:先画曲线 曲线类似正弦函数曲线,所以也就是画贝塞尔曲线。如何做到流动的效果...

  • Android贝塞尔曲线相关资料

    资料整理: Android-贝塞尔曲线 贝塞尔曲线扫盲 练习贝塞尔曲线 贝塞尔曲线绘制在线演示(带坐标) 生成三阶...

  • android 属性动画——贝塞尔曲线

    有段时间没写了,最近也有点忙,前段时间看见个有意思的动画,在这里自己学习一下,作为记录,原项目地址 https:/...

  • 贝塞尔曲线

    实现1-7阶贝塞尔曲线的形成动画 自定义View——贝塞尔曲线

  • Android 路径绘制艺术——贝塞尔曲线

    目录 1)什么是贝塞尔曲线 2)贝塞尔曲线图解 3)Android绘制贝塞尔曲线 4)绘制水波纹效果 概述 什么是...

  • iOS-UIBezierPath动画之果冻动画

    我们今天做一个简单的贝塞尔曲线动画,做这个动画之前,我们要对UIBezierPath有简单的了解。贝塞尔曲线基础知...

  • Android自定义View—贝塞尔曲线绘制及属性动画 (二)

    接着上一篇自定义送心控件效果来说,Android自定义View—贝塞尔曲线绘制及属性动画 (一) 。 上次我们用到...

  • 购物车动画

    使用贝塞尔曲线实现购物车抛物线动画关键步骤 使用path 构建贝塞尔曲线 使用PathMeasure计算曲线上每个...

  • 初试 贝塞尔曲线

    Android 绘图贝塞尔曲线简单使用 在Android中某些自定义View的时候需要绘制某些曲线,这时候贝塞尔曲...

  • Bezier曲线

    参考自iOS开发 贝塞尔曲线UIBezierPath和iOS-UI进阶13 - 贝塞尔曲线和帧动画结合 使用UIB...

网友评论

      本文标题:android 属性动画——贝塞尔曲线

      本文链接:https://www.haomeiwen.com/subject/bllknttx.html