Lottie-setProgress无法正常工作

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

我有一个使用Lottie制作的动画,效果很好,问题是,假设我的动画是一个会不断成长和收缩的球(就像它在跳动一样),当用户按下该球时,我需要它'成长为以其最大尺寸”,因此我需要将动画进度设置为1(对吗?)。

效果很好,但是问题是我希望球“增长”直到达到最大大小,而不只是在一秒钟之内从0变到1,有人知道如何做吗? (对不起,如果我的问题表达得不好...)

这是我尝试编写的代码:(此代码使球在不到一秒钟的时间内从0变到1,而不是像它在增长一样)

    LottieAnimationView unclickedAnimation = ...

    unclickedAnimation.pauseAnimation();

    float currentProgress = unclickedAnimation.getProgress();

    for(float i = currentProgress; i < 1.0f; i += 0.01f) {
        unclickedAnimation.setProgress(i);
    }

已经感谢

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

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

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

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

1
投票

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

说您的动画json从最小的球变成最大,然后-

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

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

 unclickedAnimation.loop(true);
 unclickedAnimation.setMaxProgress(/*value here*/);
© www.soinside.com 2019 - 2024. All rights reserved.