GestureDetectorとScaleGestureDetector、
どちらもonTouchEvent(MotionEvent event)
内で呼ぶ形で使用しますが、
そのまま以下のように両方呼んでしまうと、ピンチインの時もonScroll()
が呼ばれてしまうなどの問題が発生します。
public boolean onTouchEvent(MotionEvent event) {
boolean a = gestureDetector.onTouchEvent(event)
boolean b = scaleGestureDetector.onTouchEvent(event);
return a || b;
}
そこで、以下のように指の数に応じて分岐することで、問題無く共存できました。
拡大 + スクロールを行うようなビューを作るときに便利です。
public boolean onTouchEvent(MotionEvent event) {
return event.getPointerCount() == 1 ? gestureDetector.onTouchEvent(event) : scaleGestureDetector.onTouchEvent(event);
}