1

我的应用需要检测简单的手势(滚动、点击、长按)和捏缩放。任何一个检测器都可以单独工作 -GestureDetector.SimpleOnGestureListener用于点击/滚动和ScaleGestureDetector.SimpleOnScaleGestureListener捏缩放。问题是将两者结合起来。更具体地说,开始捏缩放非常困难,因此onScroll之前不会生成几个事件onScaleBegin

有什么好的方法可以解决这个问题吗?我能想到的唯一解决方案是在处理它们之前缓冲一些事件(事件队列),并检测到丢弃onScroll/onTap不处理一次onScaleBegin。但这会引入输入延迟(我的应用程序已经有了,我不想让它变得更糟)。

4

1 回答 1

3

尝试这个:

@Override
public boolean onTouchEvent(MotionEvent event) {
    boolean res = mScaleGestureDetector.onTouchEvent(event);
    if (!mScaleGestureDetector.isInProgress()) {
        res = mGestureDetector.onTouchEvent(event);
    }
    return res;
}
于 2013-11-04T10:08:09.807 回答