手势监测器的使用

private GestureDetector gd;

@Override
public boolean onTouchEvent(MotionEvent event) {
	// TODO Auto-generated method stub
	gd.onTouchEvent(event);//绑定onTouch事件
	return super.onTouchEvent(event);
}

//该方法在onCreate()时调用
private void initGesture() {
	//初始化手势识别器,要想手势识别器生效,绑定onTouch事件
	gd = new GestureDetector(new OnGestureListener() {
		
		//覆盖此方法完成手势的切换效果
		/**
		 * e1,按下的点
		 * e2 松开屏幕的点
		 * velocityX x轴方向的速度
		 * velocityY y轴方向的速度
		 */
		@Override
		public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
				float velocityY) {
			// TODO Auto-generated method stub
			//x轴方向的速度是否满足横向滑动的条件 pix/s
			if (velocityX > 200) { //速度大于400像素每秒
				//可以完成滑动
				float dx = e2.getX() - e1.getX();//x轴方向滑动的间距
				if (Math.abs(dx) < 100) {
					return true;//如果间距不符合直接无效
				}
				if (dx < 0 ){//从右往左滑动
					//这里调用左划事件方法
				}  else {//从左往右滑动
					//这里调用右划事件方法
				}
			}
			return true;
		}
		@Override
		public boolean onSingleTapUp(MotionEvent e) {
			// TODO Auto-generated method stub
			return false;
		}
		
		@Override
		public void onShowPress(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 onLongPress(MotionEvent e) {
			// TODO Auto-generated method stub
			
		}
		
		
		
		@Override
		public boolean onDown(MotionEvent e) {
			// TODO Auto-generated method stub
			return false;
		}
	});
}

你可能感兴趣的:(安卓工具基础代码库)