그래서 화면을 터치 할 때 손가락을 움직이는 방향을 감지하고 싶습니다. 현재 3 방향으로 작동하지만 "위로"움직임이 호출되지 않습니다.모션 이벤트에 손가락이 끼어있는 방향을 확인하십시오. 안드로이드
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
// store the X value when the user's finger was pressed down
downXValue = event.getX();
downYValue = event.getY();
break;
}
case MotionEvent.ACTION_UP: {
// Get the X value when the user released his/her finger
float currentX = event.getX();
float currentY = event.getY();
//check if horizontal or vertical movement was bigger
if (Math.abs(downXValue - currentX) > Math.abs(downYValue)
- currentY) {
Log.e("motionevent", "x");
// going backwards: pushing stuff to the right
if (downXValue < currentX) {
Log.e("motionevent", "right");
}
// going forwards: pushing stuff to the left
if (downXValue > currentX) {
Log.e("motionevent", "left");
}
} else {
Log.e("motionevent", "y");
if (downYValue < currentY) {
Log.e("motionevent", "up");
}
if (downYValue > currentY) {
Log.e("motionevent", "down");
}
}
break;
}
}
return true;
}
수평과 수직 이동 확인에 문제가 있습니다 :
이 내 코드? 왜냐하면 내가 위로 움직임을 할 때마다 오른쪽이나 왼쪽이 호출되기 때문입니다. 아래로 잘 작동합니다.
위와 같이 정답을 찾아 주시면 오른쪽에 표시하십시오. –
예'if (Math.abs (downXValue - currentX)> Math.abs (downYValue) -currentY)'줄에 잘못 붙인 대괄호가 있습니다. –