安装Adobe Effect,最好是安装英文版本;
使用位图素材:由于英文版AE的使用成本问题,和Lottie本身的一些BUG,很多时候在我们使用Lottie导出时,AE内的效果和最终导出效果不一致,比如渐变丢失,蒙版丢失等问题,所以建议大家在制作动效时,尽量使用位图素材,这样基本能避免在绝大多数的问题。可能大家会觉得使用位图会导致最终的json过大,Lottie落地失去意义与优势,下方表格是携程火车票最近上线的Lottie动效方案,大家可以从表格对比看出,就算使用位图方案,横向对比现有的解决方案,Lottie依然是优势巨大,原因便是其他方案1s有25帧图片,而Lottie整个动效的文件素材不过10几张,动效时间越长,lottie优势越明显。
•推荐使用lottie_rawRes代替lottie_fileName,前者可以通过 R 使用对动画的静态引用,而不仅仅使用字符串名称;
•旧版本导致的兼容问题,常见的:Missing value for KeyFrame错误,赶集之前bugly有报错:https://bugly.qq.com/v2/crash-reporting/crashes/67bb1120a0/16373887?pid=1
•废弃api:lottie_scale(from 5.0.1) https://github.com/airbnb/lottie-android/releases/tag/v5.0.1,推荐使用imageView.setScaleType
•当含有images文件夹的Lotttie动画,推荐使用zip file:Use a zip file if you have images. Simply zip them together and lottie will unzip and link the images automatically.
•硬件加速:一般不推荐使用硬件加速,默认Lottie是禁用的,因为它不支持反锯齿、笔画大写(pre API 18)等。此外,根据动画的不同,它们实际上可能性能较差。详细
https://bugly.qq.com/v2/crash-reporting/crashes/67bb1120a0/16373887?pid=1
原因:lottie版本和AE插件不匹配
旧版本
implementation 'com.airbnb.android:lottie:2.8.0'
需要在AE中把json文件导出为旧格式,否则报Missing value for KeyFrame错误;
在Flutter中已经存在开源的Lottie库,所以我们只需要在pubspec.yaml中的dependencies导入相关的依赖即可:
dependencies:
lottie: ^1.3.0
在需要展示Lottie动画Widget导入头文件:
import 'package:lottie/lottie.dart';
读取本地json文件:
Lottie.asset("json/fly.json")
读取网络json文件:
Lottie.network("https://cdn.jsdelivr.net/images/lottie_test.json",
onLoaded: (LottieComposition composition) {
print("onLoaded");
},
),
1、废弃api:lottie_scale(from 5.0.1) https://github.com/airbnb/lottie-android/releases/tag/v5.0.1,推荐使用imageView.setScaleType
例子源码 : https://github.com/LucasXu01/lottiedemo
•Lottie官网
•Lottie进阶和原理分析
•支持点击交互的Lottie-Android篇
•Lottie—json文件解析
•Lottie动画使用及原理分析
•如何在Lottie动画中获得可用的总帧数
•Flutter进阶教程——在Flutter中使用Lottie动画
•从设计师和开发的角度使用 [lottie