android动画帧率_Android性能优化-你的lottie动画今天跳帧了吗?

本文探讨了Android应用中使用Lottie动画时遇到的帧率问题,特别是首次加载时由于Fragment初始化导致的丢帧现象。通过分析Lottie的源码,揭示了Lottie如何根据系统性能调整动画执行策略。提出了两种修复方案:一是深入分析并优化Fragment初始化,二是延迟动画执行以避免初始化期间的卡顿。
摘要由CSDN通过智能技术生成

问题现象

底部tab,现在大家都很熟悉了,点击一个tab 就切换一个fragment,现在主流的做法渐渐演变成点击底部tab的时候

对应的icon要做一些动画。通常而言,我们在做类似动画时往往依赖的是lottie这个动画库(别问为什么,问就是不会做,做的烂)。然而在实际开发中,我们发现如果这个动画稍微复杂一些,就会出现不易察觉的丢帧现象。往往表现在:

第一次点击tab的时候,因为涉及到对应fragment的初始化(可能会有一些耗时操作),所以会导致 该lottie动画 有一点点丢帧的现象,看上去就好像一个本应该执行10帧的动画 只执行了不到10帧。

怎么证明这个动画执行的不完美?

比如说 我们可以 打印一下这个动画的执行过程

mLottieAnimationView.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {

@Override

public void onAnimationUpdate(ValueAnimator animation) {

Log.v("wuyue", "onAnimationUpdate ===" + animation.getAnimatedFraction());

}

});

复制代码

第一次执行动画时,注意这一次执行动画的时候会伴随着对应的fragment的初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值