
上QQ阅读APP看书,第一时间看更新
4.1.3 实现给主播刷礼物的特效
贝塞尔曲线在App中还有一个常见应用,就像时兴的给主播打赏礼物,点击爱心打赏之后,礼物图标会在屏幕上走出一条优雅的漂移曲线。这个漂移曲线在前进途中左右摇摆,不拘一格款款前行。
具体到编码上,可将漂移动画的实现步骤分解为下列几项:
创建一个缩放动画,让礼物图标在爱心处从小变到大,呈现出礼物孵化效果。
创建一个属性动画,指定礼物漂移的起点和终点,并在动画过程中动态改变贝塞尔曲线的控制点。
定义一个添加打赏的方法,该方法先把礼物图标添加到视图上,再依次播放前两步的缩放动画和属性动画。
按照以上步骤的描述,自定义打赏视图的示例代码如下:
(完整代码见ebook\src\main\java\com\example\ebook\widget\RewardView.java)


然后在布局文件中添加RewardView节点,并在对应的活动页面给爱心图标添加点击事件,每次点击爱心都调用addGiftView方法添加打赏礼物。这样多次点击便会涌现多个礼物,同时每个礼物图标都沿着自己的曲线蜿蜒前行,从而实现打赏漂移的动画特效。
运行并测试该App,可观察到打赏效果如图4-7和图4-8所示。图4-7为刚点击爱心图标时的画面,图4-8为多次点击爱心后的画面,可见礼物分别漂到了不同的位置。

图4-7 刚点击爱心图标时的画面

图4-8 多次点击爱心后的画面