1、Activity要继承implements OnGestureListener;
2、private GestureDetector detector;// 触摸监听实例
3、detector = new GestureDetector(this);// 初始化触摸探测
4、//下面7个Override函数是截获屏幕点击滑动事件方法
@Override
public boolean onDown(MotionEvent arg0) { //屏幕单击事件
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) { //屏幕滑动事件
// TODO Auto-generated method stub
if (e1.getX() - e2.getX() > 120) {// 如果是从右向左滑动
return true;
} else if (e1.getX() - e2.getX() < -120) {// 如果是从左向右滑动
return true;
}
return false;
}
@Override
public void onLongPress(MotionEvent e) { //屏幕长按事件
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
float distanceY) { //屏幕滚动事件
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent e) { //屏幕短按事件
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent e) { //抬起时触发(长按、滚动、滑动时不触发)
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onTouchEvent(MotionEvent event) { //触屏事件
// TODO Auto-generated method stub
if(event.getAction()==MotionEvent.ACTION_DOWN){
((InputMethodManager) getSystemService(INPUT_METHOD_SERVICE))
.hideSoftInputFromWindow(getCurrentFocus()
.getWindowToken(),
InputMethodManager.HIDE_NOT_ALWAYS);
}
return AssessActivityNew.this.detector.onTouchEvent(event);
}
OnDoubleTapListener的接口有这几个:
// 双击,手指在触摸屏上迅速点击第二下时触发
abstract boolean onDoubleTap(MotionEvent e);
// 双击的按下跟抬起各触发一次
abstract boolean onDoubleTapEvent(MotionEvent e);
// 单击确认,即很快的按下并抬起,但并不连续点击第二下
abstract boolean onSingleTapConfirmed(MotionEvent e);