项目介绍:
介绍
升级MIUI8之后,小米自带的天气应用晴天的时候动画效果很赞。然后就捣鼓了几下写了个简易的demo。 img1我们先来看看实现后的效果: 正常模式: View跟随手机摇晃后移动: img2 分析动画分解
(1) 下载app,然后将其后缀名改为zip解压获取我们需要的资源图片: img3(2) 实现鸟群动画 思路:通过解压后得到的素材可以发现鸟扇动翅膀的实现类似于帧动画,鸟群的运动轨迹是曲线,我们可以使用贝塞尔曲线,为了能够实时移动鸟群,我们需要获取贝塞尔曲线上面的点坐标,这里我是使用函数来计算出点坐标,也可以用PathMeasure来实现。综上,用ValueAnimator实现实时计算鸟群移动点坐标,设定一个计数器,用来更新鸟的Bitmap实现帧动画效果。 核心代码 [Java] 查看源文件 复制代码
(2) 树动画 思路:看到这素材就知道树是拼凑出来的。树动画的实现,通过观察可以发现是treeBallLeft,treeBallMiddle,treeBallRight,通过绕treeBranch的中心点实现。 核心代码 [Java] 查看源文件 复制代码
(3) 树叶动画 思路:树叶的初始位置,将树叶藏在treeBallMiddle里面。然后执行路径动画,执行路径动画的同时,根据getAnimatedFraction() 获取动画进行的百分比计算出树叶的旋转角度,动画到运行75%的时候执行透明动画就行了 核心代码 [Java] 查看源文件 复制代码
(4) 背景 思路:通过BitmapFactory.Option来压缩背景图片的大小,保证View的流畅性。 摇晃手机的同时,背景跟着动的实现:设置背景图片的时候,宽是屏幕宽度+maxoffsetX*2。通过implements SensorEventListener,获取摇摆手机时候晃动的百分比,然后在onDraw中调用 [Java] 查看源文件 复制代码
|
|