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线程中执行。

你可能感兴趣的:(android)