我想在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,因为我用两根手指在屏幕上长按。 有人知道如何正确地解决/实施它吗?
答案 0 :(得分:0)
public abstract void onLongPress (MotionEvent e)
根据android doc:{/ p>定义e
启动了长按的向下运动事件的初始。
这意味着如果你用一根手指开始LongPress
手势,这个手指将是onLongPress
所考虑的唯一手指。我的手势不是很好,但我认为你应首先判断它是一个2指或1指触摸,然后看看它是长按还是正常点击