停止Android Studio中的动画

我试图在Android Studio中制作一个动画,当我双击屏幕时,动画就会开始。 由于我使用的是滚动视图,并占用了整个屏幕,因此我使用它作为检测双击的视图。

我想要发生2件事:1.当我双击屏幕时,动画应该开始并停止。 2.当我使用音量摇杆时,即使动画已经开始,它也会加速动画。

到目前为止,这里是我的双击方法的代码:

如果你使用的是静态方法,那么你可以使用这个方法来创建一个静态方法,然后使用这个静态方法来创建一个静态的静态方法。

                mScrollView.post(new Runnable() {

                    @Override
                    public void run() {

//                            while(mScrollView.getScrollY() <= findViewById(R.id.alenuPart3).getBottom()){
//
//                                audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//                                int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
//
//
//                                ObjectAnimator.ofInt(mScrollView, "scrollY", (findViewById(R.id.minchaLinearLayout)).getBottom()).setDuration(currentVolume*100000).start();
//
//                            }
                        audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
                        int currentVolume = audio.getStreamVolume(AudioManager.STREAM_RING);
                        ObjectAnimator animator = ObjectAnimator.ofInt(mScrollView, "scrollY", (findViewById(R.id.minchaLinearLayout)).getBottom()).setDuration(currentVolume * 10000);

                        autoScrollOn = !autoScrollOn;

                        if (animator.isRunning()) {
                            animator.start();
                        } else {
                            animator.cancel();
                        }

                        Log.d("In Run Method", String.valueOf(autoScrollOn));
                    }
                });
                return super.onDoubleTap(e);
            }
        });

我现在正在制作第1部分,由于某些原因,动画不会暂停。

同样对于第2部分,我已经接受了音量级别,如果在动画开始之前更改它,它将以不同的速度工作,我正在试图在while循环中启动动画时尝试改变速度,然后重新启动动画,但我不认为这将是理想的方式,任何想法?

谢谢!

更新:我试过,.pause,.end和mScrollView.clearAnimation(); (不知道这是否是一个好主意)


我想到了。

这是因为在以下方面:

 ObjectAnimator animator = ObjectAnimator.ofInt(mScrollView, "scrollY", (findViewById(R.id.minchaLinearLayout)).getBottom()).setDuration(currentVolume * 10000);

我每次双击都创建一个new animator object ,所以当我第二次双击时暂停动画制作器。 我正在创建一个新的动画制作对象,并暂停其中一个。

我通过制作firstDoubleClickboolean来修复它,然后在那里使它成为false 。 下一次,它并没有制造出一个new object而是paused了旧new object

链接地址: http://www.djcxy.com/p/91201.html

上一篇: Stopping animations in Android Studio

下一篇: Gesture Swipe in Android