如何获取 Lottie Animation 中可用的总帧数?

How to get total number of frames available in the Lottie Animation?

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

我正在使用以下依赖项

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:最后一帧。