非原生动画框架在Android端的使用

在Android平台上,除了我们熟知的属性动画(Animator),View动画(Animation),后面出的Transition动画,还有其他第三方出的动画库可以供我们使用:Lottie(Airbnb)、Pag(腾讯)

他们的官方地址分别为:

Lottie:

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

文档:http://airbnb.io/lottie/#/

Pag:

Github: https://github.com/Tencent/libpag

文档:https://pag.art/docs/home.html

那么对于「原生通过代码开发动画」与「使用三方动画库」有什么优劣势呢?

类型

原生代码动画

三方库动画

优势

可以做组合动画

可以通过代码控制展示位置

可以直接作用于View

可以更改View的属性

占用的Apk空间更小

更容易做到复用

节省开发时间,设觉相关工作人员直接给出动画文件

动画文件中的元素可根据文档修改、配置。

有一定的可复用性,通过替换文件实现。

不太容易制作组合动画

大大节省研发成本

方便云控,可以通过下载动画文件,更新动画

劣势

复杂动画实现成本巨大:需要UI开发同时投入巨大成本。

1、需要多引入相关库,增加包体积。

2、由于是加载文件方式展示动画,有IO成本

3、如果库不支持网络加载,可能需要实现成本

4、缓存处理成本

5、内存占用成本

在实际应用过程中,大多数情况都是「原生动画」与「三方动画」共存的模式,这过程需要同时考虑:

  1. 研发成本

  2. 视觉效果

  3. 效果复杂度

  4. 可复用性

  5. 是否需要组合动画

  6. 是否有屏幕适配需求

我们的项目中用过lottie 动画,现在在逐步使用Pag动画。

与Lottie相比,Pag的优势在于,只需要一个pag文件即可(整体打包)。而Lottie需要json、图片等文件是分开存储的。

猜你喜欢

转载自blog.csdn.net/yztbydh/article/details/132255154