Lottie SetProgress无法正常工作

时间:2018-06-01 14:16:26

标签: java android animation progress lottie

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

非常感谢

2 个答案:

答案 0 :(得分:2)

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

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

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

此外,如果您要循环播放或设置动画的最大帧/最小帧,则可以使用-

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

答案 1 :(得分:0)

使用当前代码,您只需将动画设置为显示特定的帧。您要设置maxProgress,然后播放动画。

因此,如果您希望它从一半变到完整大小,则可以从 maxProgress(0.5f); 开始,然后在此处暂停。当用户单击时,您可以设置新参数:

 unclickedAnimation.setMaxProgress(1f);
 unclickedAnimation.resumeAnimation();