Android酷炫动画是怎么实现的?

       Android动画分为帧动画、补间动画和属性动画。  

          如果是复杂漂亮的动画可能用帧动画或者gif, 缺点是占用空间大、适配比较麻烦。

    

       一些漂亮的动画是重写View的onDraw函数, Canvas类的drawBitmapMesh函数可以实现波浪, 风吹旗帜飘扬,扭曲拉伸效果, 水滴吸入、缩放、移动、旋转、渐变、吸入等等。 如果是不规则变化, 可以让UI设计师导出每帧的坐标, 并应用在onDraw函数里。  原理案例如:https://github.com/7heaven/bitmapMesh


       从Android5.*后google新提供了矢量图片类型SVG, 即通过配置xml即可展示图片, 具有占用空间小,适配性高等有点, 重点是其中的Path参数。 按照Google的建议图片类型使用 VectorDrawable > WebP > Png > Jpeg, 最推荐使用VectorDrawable。  下面的效果都是通过配置个json实现的SVG动画。

Android酷炫动画是怎么实现的?_第1张图片


Airbnb公司提供了Android和iOS的三方库:

https://github.com/airbnb/lottie-android

https://github.com/airbnb/lottie-ios


几句话就能搞定上面的特效, 屌的不要不要的

LottieAnimationView animationView = findViewById(R.id.animation_view);
animationView.setAnimation("hello-world.json");
animationView.loop(true);


对于使用者来说, 关心的是这个动画Json是怎么来的?

答: 找UI设计师要!  


UI设计师是通过Adobe的After effects设计出动画效果, 并使用Bodymovin插件导出为json文件。 


动画json长这样:

Android酷炫动画是怎么实现的?_第2张图片


你可能感兴趣的:(Android)