花束直播 点赞效果 三阶贝赛尔

2018-08-15  本文已影响0人  贝克街的猫大哥呀

先说下这个自定义VIEW的难点。

一是获得图片的宽高,这里给出一个方案:

好了,开始处理,首先需要有一个addLove的方法,在底部加一个花束图片嘛。

这里要说一下,这个自定义VIEW是继承自  RelativeLayout ,所以这里的写法是没毛病的。

看到这里开启了一个动画,来看看 getAnimator方法:

这里设为两个set  ,一个是初始化时,慢慢出现图片,执行完后,再开始一个路径动画。 

playSequentially就是执行,先执行完innerSet,再执行后面的,现在看看getBezierAnimator:

这个方法,其实就是一个三阶贝塞尔曲线。确定4个点。   这里面是有三阶公式的,写在了LoveTypeEvaluator里执行,最后用ofObject来完成动画,这里贴一下 LoveTypeEvaluator 的代码。LoveTypeEvaluator 其实就是一个求值程序! 内部有一个 t ,会在0-1之间变化。再通过三阶贝赛尔的公式,求出某个时段的路径坐标!   就跟属性动画的变化其实没区别,只是属性动画就跟一个值有关,可能直接用,这里是跟4个值有关。所以需要用求值程序来求值。

返回的 point 就是t时间的路径坐标。

当然了,整个动画执行完后,需要remove掉view,这里就不多说了,第二张贴图就有这个代码。

上一篇下一篇

猜你喜欢

热点阅读