我有一个使用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);
}
非常感谢
答案 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();