Android对手势的支持非常到位,要识别手势,有以下步骤:
1,Activity继承OnGestureDetector
2,在类中声明GestureDetector gd;
3,在onCreate中实例化gd = new GestureDetector(this);
4,触摸委托给手势
public boolean onTouchEvent(MotionEvent e){
     
  return gd.onTouchEvent(e);
     //把事件委托给gd
     
    }
但有时候我们不能把所有的事件都委托给手势,需要接收屏幕抬起事件:
if(e.getAction() == MotionEvent.ACTION_UP){//负责监听屏幕抬起事件
    isGoOn = false;
    if(t1 != null){
     //t1.stop();
     t1.interrupt();
     t1 = null;
     if(vib != null){
      vib.cancel();//取消震动
     }
     
    }
    
  }
这里我们举了一个取消震动的事件
5,重写手势方法:
public boolean onDown(MotionEvent arg0)
 {
  //触摸按下
  Toast.makeText(this,"onDown" , 8000)
   .show();
  return false;
 }
 @Override
 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
  float velocityY)
 {
  //在屏幕上"拖过"
  Toast.makeText(this , "onFling" , 8000)
   .show();
  return false;
 }
 @Override
 public void onLongPress(MotionEvent e)
 {
  //长按事件,我们使用手机的时候,通常会有弹出菜单的效果
  Toast.makeText(this ,"onLongPress" , 8000)
   .show();  
 }
 @Override
 public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
  float distanceY)
 {
  //"滚动"运动
  Toast.makeText(this ,"onScroll" , 8000)
   .show(); 
  return false;
 }
 @Override
 public void onShowPress(MotionEvent e)
 {
  //屏幕按下,没有移动和松开的方法
  Toast.makeText(this ,"onShowPress" , 8000)
   .show();  
 }
 @Override
 public boolean onSingleTapUp(MotionEvent e)
 {
  //轻触屏幕
  Toast.makeText(this ,"onSingleTapUp" , 8000)
   .show();
  return false;
 }
实现这些方法,手势基本就差不多了,当然还有自定义手势,那是更深一个层次的,在此就不多说了。
