如何获得Lottie动画中可用的总帧数?

问题描述

我在我的Android应用中使用随机Lottie动画。我需要知道Lottie动画中使用的帧总数。根据总帧数,我想将动画从第一帧循环到特定帧。例如如果Lottie文件包含60帧,那么我要执行从1到任意数字

我正在使用以下依赖项

implementation 'com.airbnb.android:lottie:3.4.2'

解决方法

使用addLottieOnCompositionLoadedListener获取彩票的Composition

binding.myLottie.addLottieOnCompositionLoadedListener { composition ->
    val startFrame = composition.startFrame
    val endFrame = composition.endFrame
    //will log start/end frame values
    Log.d(TAG,"startFrame : $startFrame,endFrame : $endFrame") 
}

然后在动画的特定部分使用setMinAndMaxFrame()

binding.myLottie.addLottieOnCompositionLoadedListener { composition ->
    val startFrame = composition.startFrame
    val endFrame = composition.endFrame
    if (maxFrame < endFrame) {
        binding.myLottie.setMinAndMaxFrame(1,maxFrame)
    }
}

进一步了解here,有关循环播放动画的特定部分。

,

您可以在json文件中看到第一帧和最后一帧计数。 ip =第一帧,op:最后一帧。

example image