天天看点

Android屏幕滑动、点击事件实现

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); 

下一篇: 决策树-剪枝

继续阅读