java - 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);
}
已经谢谢了
解决方案
如果我能够正确理解您的问题,我认为您需要做的就是在单击LottieAnimationView
. 下面的代码可以帮助你理解。
假设您的动画 json 从最小的球尺寸变为最大,然后 -
unclickedAnimation.setOnClickListener(v -> {
unclickedAnimation.playAnimation();
});
此外,如果您想为动画循环或设置最大帧/最小帧,您可以使用 -
unclickedAnimation.loop(true);
unclickedAnimation.setMaxProgress(/*value here*/);
推荐阅读
- azure-storage - 如何在 .Net 的 Azure 存储数据移动库中设置 Blob 层
- mediawiki - 运行 facebook-mediawiki 工作负载时出现围攻错误
- java - 从maven项目中的主包访问测试资源
- c# - 将同一父类的不同对象传递给承载泛型派生类对象的构造函数/方法
- python - 如果名称以 A Django 开头,请取消选择
- python - 在 Django 中按降序显示名称和计数
- powershell - 连接到 https://outlook.office365.com/powershell-liveid:访问被拒绝
- javascript - acrobat 中的计算
- ios - Objective-C 不打印(NSLog 和 PrintF 不工作!)
- macos - 在 Mac Catalyst 应用程序中使用 UIDocumentPickerViewController 读取文件需要读/写权利吗?