Android应用开发中触摸屏手势识别的实现方法解析

2019-12-10 19:05:42王冬梅


d、就可以捕捉到onFling事件

二、单独View

a、implements OnGestureListener,OnTouchListener

b、       

 View view = findViewById(R.id.view);
    view.setOnTouchListener(this);
    view.setLongClickable(true);
    GestureDetector mGestureDetector = new GestureDetector(this);

c、重写的是implements OnTouchListener的onTouch方法

@Override
  public boolean onTouch(View view, MotionEvent event) {
    // TODO Auto-generated method stub
    return mGestureDetector.onTouchEvent(event);
  }

d、就可以捕捉到onFling事件

三、实现onFling

private float FLING_MIN_DISTANCE = 100;
  private float FLING_MIN_VELOCITY=10;
  @Override
  public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
      float velocityY) {
    // TODO Auto-generated method stub
 
    System.out.println("onFling");
 
    if (e1.getX() - e2.getX() > FLING_MIN_DISTANCE
        && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
      // Fling left
      System.out.println("左");
      Toast.makeText(this, "左", Toast.LENGTH_SHORT).show();
    } else if (e2.getX() - e1.getX() > FLING_MIN_DISTANCE
        && Math.abs(velocityX) > FLING_MIN_VELOCITY) {
      // Fling right
      System.out.println("右");
      Toast.makeText(this, "右", Toast.LENGTH_SHORT).show();
    }
 
    return false;
  }