画面をダブルクリックすると起動するアンドロイドスタジオでアニメーションを作成しようとしています。私はスクロールビューを使用しているので、それは画面全体を占めているので、ダブルタップを検出するためのビューとして使用しました。Androidスタジオでのアニメーションの停止
私は2つのことが起こることを望んでいました:1.画面をダブルタップすると、アニメーションが開始され、停止する必要があります。そして2.ボリューム・ロッカーで演奏すると、すでにアニメーションが開始されていても、アニメーションが高速化されます。
これまでのところ、ここでダブルタップ方式のための私のコードです:
ます。private void doubleTapToScroll(){ findViewById(R.id.minchaScroll).setOnTouchListener(新しいView.OnTouchListener(){ プライベートGestureDetector gestureDetector =が、新しいGestureDetector(新GestureDetector.SimpleOnGestureListener(){@Override 公共ブールonDoubleTap(MotionEvent電子){
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ではすでにボリュームレベルを取り入れていますが、アニメーションが開始する前にボリュームを変更すると別の速度で動作しますが、アニメーションがオンの間に速度を変更しようとしていますループやアニメーションを再起動しながら、私は理想的な方法、任意のアイデアとは思わない?
ありがとうございます!
アップデート:私は試してみました.pause、.end、mScrollView.clearAnimation(); (それが良い考えであればわからない)