实施Multi Long按Android

时间:2013-08-06 06:55:00

标签: android gesture

我想在Android中实现两指长按。 我试图覆盖onLongPress:

private static final int LONGTIMEOUT = ViewConfiguration.getLongPressTimeout() + 100;

@Override public void onLongPress(final MotionEvent e) {
  Log.i(TAG, "onLongPress");
  switch (e.getActionMasked()) {
    case MotionEvent.ACTION_DOWN:
      Log.i(TAG, "onLongPress:ACTION_DOWN");
      break;
    case MotionEvent.ACTION_POINTER_DOWN:
      Log.i(TAG, "onLongPress:ACTION_POINTER_DOWN");
      if (SystemClock.uptimeMillis() - e.getEventTime() > LONGTIMEOUT)
        Log.i(TAG, "YES YES YES");
      break;
    default:
      break;
  }
}

但它永远不会进入ACTION_POINTER_DOWN,因为我用两根手指在屏幕上长按。 有人知道如何正确地解决/实施它吗?

1 个答案:

答案 0 :(得分:0)

public abstract void onLongPress (MotionEvent e)

根据android doc:{/ p>定义e

  

启动了长按的向下运动事件的初始

这意味着如果你用一根手指开始LongPress手势,这个手指将是onLongPress所考虑的唯一手指。我的手势不是很好,但我认为你应首先判断它是一个2指或1指触摸,然后看看它是长按还是正常点击