![Android App开发进阶与项目实战](https://wfqqreader-1252317822.image.myqcloud.com/cover/109/44510109/b_44510109.jpg)
上QQ阅读APP看书,第一时间看更新
4.1.3 实现给主播刷礼物的特效
贝塞尔曲线在App中还有一个常见应用,就像时兴的给主播打赏礼物,点击爱心打赏之后,礼物图标会在屏幕上走出一条优雅的漂移曲线。这个漂移曲线在前进途中左右摇摆,不拘一格款款前行。
具体到编码上,可将漂移动画的实现步骤分解为下列几项:
创建一个缩放动画,让礼物图标在爱心处从小变到大,呈现出礼物孵化效果。
创建一个属性动画,指定礼物漂移的起点和终点,并在动画过程中动态改变贝塞尔曲线的控制点。
定义一个添加打赏的方法,该方法先把礼物图标添加到视图上,再依次播放前两步的缩放动画和属性动画。
按照以上步骤的描述,自定义打赏视图的示例代码如下:
(完整代码见ebook\src\main\java\com\example\ebook\widget\RewardView.java)
![](https://epubservercos.yuewen.com/0C084D/23721623101012206/epubprivate/OEBPS/Images/Figure-P129_17447.jpg?sign=1739516104-0a0WTG8VpYjZIKMP42vSyR8PZDANC7aZ-0-64e6a71cc7427f7dcc1d0a0b3e62b920)
![](https://epubservercos.yuewen.com/0C084D/23721623101012206/epubprivate/OEBPS/Images/Figure-P130_17448.jpg?sign=1739516104-J5qlywmKG0lzbY55cPM7j6z5AXCeZao2-0-d68c30cbaf8473e555d7caf68ec3a5df)
然后在布局文件中添加RewardView节点,并在对应的活动页面给爱心图标添加点击事件,每次点击爱心都调用addGiftView方法添加打赏礼物。这样多次点击便会涌现多个礼物,同时每个礼物图标都沿着自己的曲线蜿蜒前行,从而实现打赏漂移的动画特效。
运行并测试该App,可观察到打赏效果如图4-7和图4-8所示。图4-7为刚点击爱心图标时的画面,图4-8为多次点击爱心后的画面,可见礼物分别漂到了不同的位置。
![](https://epubservercos.yuewen.com/0C084D/23721623101012206/epubprivate/OEBPS/Images/Figure-P131_8358.jpg?sign=1739516104-bbuMguT8943AjsfyIpImGbpz9BMn1efM-0-08825cb8a215c1d75323c50726a72450)
图4-7 刚点击爱心图标时的画面
![](https://epubservercos.yuewen.com/0C084D/23721623101012206/epubprivate/OEBPS/Images/Figure-P131_8360.jpg?sign=1739516104-TMY3e1TF71QNY5o7YrMO05ulwAOtuGCQ-0-cfcbdc45ea5761aec99f44dfa6977b41)
图4-8 多次点击爱心后的画面