您的位置:首页 > 其它

安卓在定义的view中实现手势识别上,下,左,右的功能

2016-01-20 10:31 375 查看
在安卓中自己做一个识别上下左右的功能

1.首先在全局变量中定义一个实例

//定义手势检测器实例

private GestureDetector mDetector;


2.然后再该view的构造函数中创建出对象

mDetector = new GestureDetector( this.onGestureListener);


3.接着在实现onGestureListener的方法

GestureDetector.OnGestureListener onGestureListener = new       GestureDetector.OnGestureListener() {
@Override
public boolean onDown(MotionEvent e) {
return false;
}

@Override
public void onShowPress(MotionEvent e) {

}

@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}

@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}

@Override
public void onLongPress(MotionEvent e) {

}

@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
float minMove = 100;         //最小滑动距离
float minVelocity = 0;      //最小滑动速度
float beginX = e1.getX();
float endX = e2.getX();
float beginY = e1.getY();
float endY = e2.getY();

if(beginX-endX>minMove&&Math.abs(velocityX)>minVelocity){   //左滑
System.out.println("左");
}else if(endX-beginX>minMove&&Math.abs(velocityX)>minVelocity){   //右滑
System.out.println("右");
}else if(beginY-endY>minMove&&Math.abs(velocityY)>minVelocity){   //上滑
System.out.println("上");
}else if(endY-beginY>minMove&&Math.abs(velocityY)>minVelocity){   //下滑
System.out.println("下");
return true;
}
};


4.最后处理下点击事件

//交由手势探测接口处理触摸事件

public boolean onTouchEvent(MotionEvent event) {
mDetector.onTouchEvent(event);
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: