1、实现两个接口
implements OnTouchListener, OnGestureListener
public abstract boolean onTouch (View v, MotionEvent event)
public abstract boolean onDown (MotionEvent e)
public abstract boolean onFling (MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
public abstract void onLongPress (MotionEvent e)
public abstract boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)
public abstract void onShowPress (MotionEvent e)
public abstract boolean onSingleTapUp (MotionEvent e)
同样可以由e2得到离开屏幕时的坐标,比较两个坐标的相对位置,可以判断手指划过屏幕的方向。
qrobot开发过程中只用到从左向右或从右向左的手势识别。
2、GestureDetector类
初始化:
private GestureDetector gestureDetector = null;
gestureDetector = new GestureDetector(this); gestureDetector.setIsLongpressEnabled(true);
在onTouch方法中
public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); }
在qrobot开发中监听器是加在一个空白的textview上的
textView.setFocusable(true); textView.setClickable(true); textView.setLongClickable(true); textView.setOnTouchListener(this);