手势监控代码:
页面实现 OnGestureListener 事件
定义两个变量设置手势边界值
private static final int FLING_MIN_DISTANCE = 80;
private static final int FLING_MIN_VELOCITY = 100;
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) {
//向右翻
if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
//
}
//向左翻
if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
//
}
return false;
}
由于页面中可能存在一些可点击的控件如Listview ,当在这些控件做手势时,响应的是控件的事件,屏幕的监控被覆盖,此时只要重写如下方法
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (mDetector.onTouchEvent(event)) { // mDetector 为GestureDetector
event.setAction(MotionEvent.ACTION_CANCEL);
}
return super.dispatchTouchEvent(event);
}
多用于TabActivity 全屏手势监控