我有一个使用Lottie的动画效果很好,问题是,让我们说我的动画是一个增长和缩小的球(如果它正在跳动),当用户按下球时,我需要它'成长为它最大尺寸'所以我需要将我的动画进度设置为1(对吗?)。
这样做很好,但问题是我希望球“增长”直到它达到最大尺寸,而不是在几分之一秒内从0变为1,有人知道怎么做吗? (对不起,如果我的问题没有很好地制定......)
这是我试着编写的代码:(这段代码使得球在几分之一秒内从0变为1,而不是像它正在增长)
LottieAnimationView unclickedAnimation = ...
unclickedAnimation.pauseAnimation();
float currentProgress = unclickedAnimation.getProgress();
for(float i = currentProgress; i<1;i=i+0.01f)
{
unclickedAnimation.setProgress(i);
}
谢谢
如果我能够正确理解你的问题,我认为你需要做的就是点击LottieAnimationView
播放你的Lottie动画。以下代码可以帮助您理解。
假设您的动画json从最小的球大小变为最大,然后 -
unclickedAnimation.setOnClickListener(v -> {
unclickedAnimation.playAnimation();
});
此外,如果您想循环或设置动画的最大帧/分钟帧,您可以使用 -
unclickedAnimation.loop(true);
unclickedAnimation.setMaxProgress(/*value here*/);
使用当前代码,您只需将动画设置为显示特定帧。您想要设置最大进度,然后播放动画。
因此,如果您希望它从半尺寸变为全尺寸,您将从maxProgress(0.5f)开始;并暂停它。当用户单击时,您可以设置新参数:
unclickedAnimation.setMaxProgress(1f);
unclickedAnimation.resumeAnimation();