Lottie动画慢机器人

我正在使用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)

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...