我的应用需要检测简单的手势(滚动,点击,长按)和捏缩放。这两种探测器都能正常工作 - GestureDetector.SimpleOnGestureListener
用于点击/滚动,ScaleGestureDetector.SimpleOnScaleGestureListener
用于压缩缩放。问题是将两者结合起来。更具体地说,开始缩放缩放非常困难,因此在onScroll
之前不会生成几个onScaleBegin
事件。
有什么好方法可以解决这个问题吗?我能想到的唯一解决方案是在处理它们之前缓冲一些事件(事件队列),并在检测到onScroll
时丢弃onTap
/ onScaleBegin
而不进行处理。但这会引入输入延迟(我的应用已经存在,我不想让它变得更糟)。
答案 0 :(得分:3)
试试这个:
@Override
public boolean onTouchEvent(MotionEvent event) {
boolean res = mScaleGestureDetector.onTouchEvent(event);
if (!mScaleGestureDetector.isInProgress()) {
res = mGestureDetector.onTouchEvent(event);
}
return res;
}