实际上,当我向上/向下滑动手指时,我想要连续增加/减小音量。我想要当我缓慢向上移动手指时,音量随手指移动而增加,而在手指向下的情况下减小。但是当我仅向上滑动手指一次时,代码会增加音量。我需要再次向上滑动以增加音量。随着手指移动,它不会持续增加。
请帮助我,我该怎么做。请检查我的代码有什么错误。请帮助谢谢。
OnSwipeTouchListener.java(类)>>
public class OnSwipeTouchListener implements OnTouchListener { private final GestureDetector gestureDetector; public OnSwipeTouchListener (Context ctx){ gestureDetector = new GestureDetector(ctx, new GestureListener()); } @Override public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); } private final class GestureListener extends SimpleOnGestureListener { private static final int SWIPE_THRESHOLD = 100; private static final int SWIPE_VELOCITY_THRESHOLD = 100; @Override public boolean onDown(MotionEvent e) { return true; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { boolean result = false; try { float diffY = e2.getY() - e1.getY(); float diffX = e2.getX() - e1.getX(); if (Math.abs(diffX) > Math.abs(diffY)) { if (Math.abs(diffX) > SWIPE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { if (diffX > 0) { onSwipeRight(); } else { onSwipeLeft(); } result = true; } } else if (Math.abs(diffY) > SWIPE_THRESHOLD && Math.abs(velocityY) > SWIPE_VELOCITY_THRESHOLD) { if (diffY > 0) { onSwipeBottom(); } else { onSwipeTop(); } result = true; } } catch (Exception exception) { exception.printStackTrace(); } return result; } } public void onSwipeRight() { } public void onSwipeLeft() { } public void onSwipeTop() { } public void onSwipeBottom() { }
}
VideoView.java
(活动) fullview = (View)findViewById(R.id.fullView);
fullview.setOnTouchListener(new OnSwipeTouchListener(ViewVideo.this) {
public void onSwipeTop() {
Toast.makeText(ViewVideo.this, "top", Toast.LENGTH_SHORT).show();
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume + 1, 0);
}
public void onSwipeRight() {
Toast.makeText(ViewVideo.this, "right", Toast.LENGTH_SHORT).show();
}
public void onSwipeLeft() {
Toast.makeText(ViewVideo.this, "left", Toast.LENGTH_SHORT).show();
}
public void onSwipeBottom() {
Toast.makeText(ViewVideo.this, "bottom", Toast.LENGTH_SHORT).show();
currentVolume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, currentVolume - 1, 0);
}
});
实际上,当我向上/向下滑动手指时,我想要连续增加/减小音量。我想要当我缓慢向上移动手指时,音量随手指移动而增加,而在手指向下的情况下减小。 ...
您需要实现的是加权阈值。也就是说,当前每当您检测到用户向上滑动时,您就会将swipeUp音量触发1。您感兴趣的是更详细的信息,您想根据用户的滑动量(即体重)来进一步增加音量。