我在我的Android应用中使用随机Lottie动画。我需要知道Lottie动画中使用的总帧数。根据总帧数,我想循环播放动画从第1帧到某个帧。例如,如果Lottie文件包含60帧,则我想将动画执行从1到任何小于60的数字。
我正在使用以下依赖项
implementation 'com.airbnb.android:lottie:3.4.2'
我在我的Android应用中使用随机Lottie动画。我需要知道Lottie动画中使用的总帧数。根据总帧数,我想循环播放动画从第1帧到某个帧。例如,如果Lottie文件包含60帧,则我想将动画执行从1到任何小于60的数字。
我正在使用以下依赖项
implementation 'com.airbnb.android:lottie:3.4.2'
你可以在json文件中看到第一帧和最后一帧的计数。ip表示第一帧,op表示最后一帧。
ip
和op
。在这种情况下,第一个ip
和op
是整个文件的帧数。 - undefinedaddLottieOnCompositionLoadedListener
方法来获取你的 Lottie 的 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)
}
}
阅读这里,了解有关循环动画特定部分的更多信息。