前段时间工作中需要实现一种控件类似贝塞尔曲线轨迹运动的效果,也是折腾了几天,刚开始本着不重复造轮子的想法,去网上搜类似的效果,结果没搜到,后来自己实现了,抽成一个Demo,希望有需要的朋友以后可以直接用到而不用再折腾。
关于贝塞尔曲线的概念可以移步到这儿贝塞尔曲线的介绍 。
原理其实很简单,根据贝塞尔公式,用四个点确定一个轨迹,然后通过给控件设置动画,根据时间计算出控件此刻应该在的位置(可以理解为在屏幕上的坐标),只要四个点设置的恰当,可以让控件运行任何的轨迹
先上个效果图(电脑太卡,录制gif效果不好,请见谅):

运行效果
代码重要的部分其实只有自定义的TypeEvaluator,构造方法如下: