在两个手指向下如何禁用动作移动

时间:2018-06-06 06:31:21

标签: android multi-touch

我的代码如下:

switch (ev.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
            pinching = false;
            break;

        case MotionEvent.ACTION_MOVE:
            if (pinching || ld > 30.0f) {
                pinching = true;
                final float dxk = 0.5f * (lastdx1 + lastdx2);
                final float dyk = 0.5f * (lastdy1 + lastdy2);

                if(zoom * d / (d - dd) >= 4.0){
                    pinching = false;
                    scrolling = false;
                } else {
                    smoothZoomTo(Math.max(1.0f, zoom * d / (d - dd)), dxk, dyk, true);
                }
            }
            break;

        case MotionEvent.ACTION_POINTER_DOWN:
            ev.setAction(MotionEvent.ACTION_CANCEL);
            super.dispatchTouchEvent(ev);
            break;

        case MotionEvent.ACTION_POINTER_UP:
        case MotionEvent.ACTION_UP:
        default:
            pinching = false;
            break;
    }

这里我试图在缩放后把我的两根手指放下。我的要求是在达到maxzoom时不要移动。但是现在每次动作都会在动作指针向下事件中被调用。

如何在这种情况下跳过动作移动?任何帮助非常感谢。

1 个答案:

答案 0 :(得分:0)

如果您只想单次触摸执行ACTION_MOVE, 然后使用

ev.getPointerCount();

这给出了指针的数量。如果此计数大于1,则不执行移动操作。