1、使用帧动画。但是一个动画需要添加很多张图片,apk体积必然变大,并且还要根据不同的尺寸进行适配。
2、用 Gif。但是使用Gif 占用空间较大,同样需要为各种屏幕尺寸、分辨率做适配,同时原生Android本身是不支持gif直接展示的。
3、编码加图片辅助。这种方式繁琐并且不易维护,稍作修改就要推倒重新来过。
4、Android 5.x 之后提供了对 SVG 的支持,通过 VectorDrawable、AnimatedVectorDrawable 的结合可以实现一些稍微复杂的动画。
矢量图在很久很久以前就已经应用起来了,是一种基于xml的图像,因为图片不提供具体的像素,只提供的是绘图的指令,所以好处是 占用内存非常小,性能高,可以任意缩放而不会失真,但是缺点也很明显,没有位图表达的色彩丰富。 然而现在app风格越来越扁平, 拟物化已经成了过去,矢量图成了越来越多人的选择。
用法:https://blog.csdn.net/suyimin2010/article/details/84174540
5、Lottie。不使用大量图片,甚至零图片,不占空间,不占内存,不需要适配,且易于维护,简单而且方便
Lottie是Airbnb开源的一个支持 Android、iOS 以及 ReactNative,利用json文件的方式快速实现动画效果的库。
Lottie项目地址:https://github.com/airbnb/lottie-android