Android 手势监听(转)
原文地址:
Android开发之手势滑动(滑动手势监听)详解
/** 记录按下的坐标点(起始点)**/
private float mPosX = 0;
private float mPosY = 0;
/** 记录移动后抬起坐标点(终点)**/
private float mCurPosX = 0;
private float mCurPosY = 0;
View.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
mPosX = event.getX();
mPosY = event.getY();
tvTip.setVisibility(View.VISIBLE);
break;
case MotionEvent.ACTION_MOVE:
mCurPosX = event.getX();
mCurPosY = event.getY();
break;
case MotionEvent.ACTION_UP:
float dx = Math.abs(mCurPosX - mPosX);
float dy = Math.abs(mCurPosY - mPosY);
// 横向滑动
if (dx > dy * 3) {
drawerLayout.openDrawer(GravityCompat.START);
if (tvTip.getVisibility() == View.VISIBLE)
tvTip.setVisibility(INVISIBLE);
}
// 纵向滑动
else if (dx * 3 < dy)
tvTip.setVisibility(View.INVISIBLE);
break;
}
// 返回 true,会消耗掉此事件,系统不再响应滑动手势
// 返回 false,不消耗掉此事件,系统继续响应滑动手势消息
return true;
}
});

浙公网安备 33010602011771号