Lottie Android - 如何从一个位置到另一个位置玩并按范围重复?
Lottie Android - How to play from position to position and repeat by range?
我找到了这个 Lottie Play/Pause button,但我不知道如何在我的音频播放器暂停时显示播放状态,在播放器播放时显示暂停状态并在其中重复播放均衡器动画(请参阅 lottie 预览)正在玩。我已经阅读了文档,但没有这个案例的例子。我对 After Effects 也没有任何控制动画的知识。
根据 Lottie 动画它有帧,所以通过操纵这些帧你可以实现你想要的,示例
AnimationView play_pause = findViewById(R.id.play_pause);
play_pause.cancelAnimation();
play_pause.setMinFrame(90);
play_pause.setMaxFrame(175);
这段代码会在 90-175 的范围内重复你的动画 我在你的 Lottie Play/Pause 按钮上测试过它,所以点击停止时你必须将 MaxFrame 更改为 210 并在动画完成后将循环设置为 1会在播放图片时停止。
这是实现类似目标的完整代码
Boolean isPlaying = false;
play_pause = findViewById(R.id.play_pause);
play_pause.pauseAnimation();
play_pause.setMinFrame(60);
play_pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isPlaying){
play_pause.removeAllAnimatorListeners();
play_pause.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (valueAnimator.getAnimatedFraction() == 1){
play_pause.setMinFrame(60);
play_pause.pauseAnimation();
}
}
});
play_pause.setMinFrame(175);
play_pause.setMaxFrame(210);
isPlaying = false;
} else {
play_pause.setMaxFrame(175);
play_pause.removeAllUpdateListeners();
play_pause.addAnimatorListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
play_pause.setMinFrame(90);
}
});
play_pause.resumeAnimation();
isPlaying = true;
}
}
});
我找到了这个 Lottie Play/Pause button,但我不知道如何在我的音频播放器暂停时显示播放状态,在播放器播放时显示暂停状态并在其中重复播放均衡器动画(请参阅 lottie 预览)正在玩。我已经阅读了文档,但没有这个案例的例子。我对 After Effects 也没有任何控制动画的知识。
根据 Lottie 动画它有帧,所以通过操纵这些帧你可以实现你想要的,示例
AnimationView play_pause = findViewById(R.id.play_pause);
play_pause.cancelAnimation();
play_pause.setMinFrame(90);
play_pause.setMaxFrame(175);
这段代码会在 90-175 的范围内重复你的动画 我在你的 Lottie Play/Pause 按钮上测试过它,所以点击停止时你必须将 MaxFrame 更改为 210 并在动画完成后将循环设置为 1会在播放图片时停止。
这是实现类似目标的完整代码
Boolean isPlaying = false;
play_pause = findViewById(R.id.play_pause);
play_pause.pauseAnimation();
play_pause.setMinFrame(60);
play_pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (isPlaying){
play_pause.removeAllAnimatorListeners();
play_pause.addAnimatorUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (valueAnimator.getAnimatedFraction() == 1){
play_pause.setMinFrame(60);
play_pause.pauseAnimation();
}
}
});
play_pause.setMinFrame(175);
play_pause.setMaxFrame(210);
isPlaying = false;
} else {
play_pause.setMaxFrame(175);
play_pause.removeAllUpdateListeners();
play_pause.addAnimatorListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
play_pause.setMinFrame(90);
}
});
play_pause.resumeAnimation();
isPlaying = true;
}
}
});