android - Lottie Android - 如何从一个位置播放到另一个位置并按范围重复?

标签 android kotlin lottie

我找到了 Lottie Play/Pause button ,但我不知道如何在我的音频播放器暂停时显示播放状态,在播放器播放时显示暂停状态并在其中重复播放均衡器动画(请参阅乐透预览)。我已阅读文档,但没有此案例的示例。我也没有任何关于 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 播放/暂停按钮上对其进行了测试,因此在单击停止时,您必须将 MaxFrame 更改为 210 并在动画完成后将循环设置为 1,它将在播放画面中停止。

这是实现类似目标的完整代码
play_pause_animation
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;
            }
        }
    });

关于android - Lottie Android - 如何从一个位置播放到另一个位置并按范围重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59661636/

相关文章:

android - 如果不使用 Card 覆盖,Compose Lottie 组件将无法正常工作

android - Algolia NoClassDefFoundError jayway/jsonpath/Predicate

c# - Xamarin 洛蒂动画

PHP-从数据库获取图像

kotlin - 用于 build.gradle.kts 的 Jaxb。如何将其从groovy翻译成kotlin?

android - LayoutParams 不适用

android - 在单选组 android 中再次检查单选按钮

ios - 带 Lottie 的动态按钮

Android 持久套接字连接规则

java - 首次运行时无法构建 Android 项目