首页 > 解决方案 > Lottie - setProgress 无法正常工作

问题描述

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

已经谢谢了

标签: javaandroidanimationprogresslottie

解决方案


如果我能够正确理解您的问题,我认为您需要做的就是在单击LottieAnimationView. 下面的代码可以帮助你理解。

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

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

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

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

推荐阅读