闲坐敲棋

有约不来过夜半,闲敲棋子落灯花

导航

android 全屏手势监控

Posted on 2011-09-17 23:03  闲坐敲棋  阅读(507)  评论(0编辑  收藏  举报

手势监控代码:

页面实现 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 全屏手势监控