先上效果图:
用到了二阶贝塞尔曲线,先来学习学习。
原理: 由 P0 至 P1 的连续点 Q0,描述一条线段。
由 P1 至 P2 的连续点 Q1,描述一条线段。
由 Q0 至 Q1 的连续点 B(t),描述一条二次贝塞尔曲线。
由 P1 至 P2 的连续点 Q1,描述一条线段。
由 Q0 至 Q1 的连续点 B(t),描述一条二次贝塞尔曲线。
按照我自己的理解就是,P0和P2分别为起点和终点,P1为控制点,来控制曲线的轨迹。
因为是很多个心,所以我用HasMap来装,因为在动画结束之后我们要把心在界面移除,所以用key来删除当前的心。因为是自定义View,所以我把曲线和动画及更新的位置都放在了内部类里面,让自行操作。了解了二阶贝塞尔曲线的原理之后,我把贝塞尔曲线的控制点放在了下图中圈中的位置,控制点是随机的。起点是最下面的中点,终点是最上面x轴随机的位置。