@Override
public boolean onTouchEvent(MotionEvent event){
if(event.getPointerCount() > 1){
//do some math for the multiple pointers using event.getPointerId() to refer to diff. pointers.
}else{
// it's a one-touch event, do regular stuff.
}
}
Android onSingleTapUp not called for more than one pointer
-
04-07-2023 - |
문제
I'm trying to distinguish between a single pointer tap (one finger), to a tap with two pointers (two fingers).
I have noticed that onSingleTapUp(...)
is called only for MotionEvent.ACTION_UP
,
while MotionEvent.ACTION_POINTER_UP
can be recognized only from onTouchEvent(...)
.
Is there an API method for this case, or I must override onTouchEvent(...)
and distinguish between those cases with MotionEvent.getPointerCount(...)
?
public boolean onTouchEvent(MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
Log.v("GESTURE", "onTouchEvent ACTION_UP");
}
if (event.getActionMasked() == MotionEvent.ACTION_POINTER_UP) {
Log.v("GESTURE", "onTouchEvent ACTION_POINTER_UP");
}
this.mDetector.onTouchEvent(event);
return true;
}
public boolean onSingleTapUp (MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_UP) {
Log.v("GESTURE", "onSingleTapUp ACTION_UP");
}
}
해결책
제휴하지 않습니다 StackOverflow