停止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
,所以当我第二次双击时暂停动画制作器。 我正在创建一个新的动画制作对象,并暂停其中一个。
我通过制作firstDoubleClick
的boolean
来修复它,然后在那里使它成为false
。 下一次,它并没有制造出一个new object
而是paused
了旧new object
。