private float downX; //按下时 的X坐标
private float downY; //按下时 的Y坐标
@Override
public boolean onTouchEvent(MotionEvent event) {
//在触发时回去到起始坐标
float x = event.getX();
float y = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//将按下时的坐标存储
downX = x;
downY = y;
break;
case MotionEvent.ACTION_UP:
//获取到距离差
float dx = x - downX;
float dy = y - downY;
//防止是按下也判断
// Toast.makeText(this, "r", Toast.LENGTH_SHORT).show();
if (Math.abs(dx) > 5 && Math.abs(dy) > 5) {
//通过距离差判断方向
int orientation = getOrientation(dx, dy);
LogUtil.v(TAG,"r");
switch (orientation) {
case 'r':
if (isCanFinish) {
// startActivity(new Intent(PlayGameActivity.this, MainActivity.class));
}
break;
}
}
break;
}
return super.onTouchEvent(event);
}
/**
* 根据距离差判断 滑动方向
* @param dx X轴的距离差
* @param dy Y轴的距离差
* @return 滑动的方向
*/
private int getOrientation(float dx, float dy) {
if (Math.abs(dx) > Math.abs(dy)) {
//X轴移动
return dx > 0 ? 'r' : 'l';
} else {
//Y轴移动
return dy > 0 ? 'b' : 't';
}
}
Android 判断手指滑动方向
最新推荐文章于 2023-02-19 16:16:35 发布