我正在使用Airbnb的新库
Lottie在我的应用程序中制作动画.
动画由70 kb JSON文件和328 kb图像文件夹组成.这个文件夹中有13个小png.
根据GitHub回购的指示,我宣布我的观点是这样的
<com.airbnb.lottie.LottieAnimationView android:id="@+id/lottie_view" android:layout_width="match_parent" android:layout_height="wrap_content" app:lottie_fileName="animation.json" android:layout_gravity="bottom" app:lottie_loop="false" app:lottie_autoPlay="true"/>
然后,在我调用的相关java类上:
mLottieView.setImageAssetsFolder("images");
但是,我有一个问题.动画很笨拙,而且我的记忆用量在屋顶上跳跃.它从13 MB到89,所有这些都发生在主线程上.
你能告诉我有没有办法解决这个问题?
谢谢
解决方法
documentation提到了一些影响性能的项目
If the composition has no masks or mattes then the performance and memory overhead should be quite good
Png sequences are even worse than gifs (due to file sizes)
还有一些通用的Android /移动设备问题需要考虑:
>使用width =“match_parent”,height =“wrap_content”组合,图像将按比例放大.使用包裹,包裹或固定尺寸.
> PNG上的Alpha增加了处理的额外开销
如果您的UI线程按照您的建议做了太多工作,您是否可以推迟开始动画?如果这是一个选项,则LottieComposition具有静态方法,例如LottieComposition.fromJson().
您可以在后台线程上手动设置合成(然后可选择创建LottieDrawable并设置合成).完成后,您可以切换到LottieAnimationView上的UI线程和setComposition(或setImageDrawable)