Android LottieAnimation使用---踩坑篇

LottieAnimation众所周知是Airbnb出的一个实现复杂动画的一个框架,可以在Android,IOS等平台使用。使用的步骤也非常简单。但本文不是讲解它的使用。Lottie虽然好用,但也不是万能的,在使用过程中就遇到不少的问题。

  1. 在已设置Animation的情况下,使用setAnimation()方法再次设置动画并执行playAnimation()时,Lottie控件上的动画会出现短暂的闪白屏现象。这个问题目前无解,折中的方案是将多个动画放在同一个JSON文件中,通过setProgress()的方式执行某部分的动画。
  2. 当Activity被后台杀死重建时,Lottie会通过onSaveInstanceState()的方法保存销毁前的状态,在下次创建的时候重新恢复之前的状态onRestoreInstanceState()。但是对于Activity来说,已经重新创建,对应的Lottie的动画状态也要改变。所以不需要Lottie恢复到销毁前的状态。只需要重写Lottie的onSaveInstanceState()方法并返回为空即可。
  3. Lottie在初始化的时候会使用多个Task任务去加载Compisition并转化为Drawable填充在Lottie控件中。假如Lottie不能抢到主线程的Task(主线程的工作形容为饭堂,如果Lottie排不上队,吃不上中午饭,只能等到吃晚饭),就会出现Lottie动画跳帧的问题,就是动画前面的部分不执行,直接调到后面的动画。解决,将其PlayAnimation()方法放在UI线程中执行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值