Lottie SetProgress无法正常工作

问题描述 投票:1回答:2

我有一个使用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);
    }

谢谢

java android animation progress lottie
2个回答
2
投票

如果我能够正确理解你的问题,我认为你需要做的就是点击LottieAnimationView播放你的Lottie动画。以下代码可以帮助您理解。

假设您的动画json从最小的球大小变为最大,然后 -

     unclickedAnimation.setOnClickListener(v -> {
              unclickedAnimation.playAnimation();
});

此外,如果您想循环或设置动画的最大帧/分钟帧,您可以使用 -

 unclickedAnimation.loop(true);
 unclickedAnimation.setMaxProgress(/*value here*/);

0
投票

使用当前代码,您只需将动画设置为显示特定帧。您想要设置最大进度,然后播放动画。

因此,如果您希望它从半尺寸变为全尺寸,您将从maxProgress(0.5f)开始;并暂停它。当用户单击时,您可以设置新参数:

 unclickedAnimation.setMaxProgress(1f);
 unclickedAnimation.resumeAnimation();
© www.soinside.com 2019 - 2024. All rights reserved.