我的代码如下:
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时不要移动。但是现在每次动作都会在动作指针向下事件中被调用。
如何在这种情况下跳过动作移动?任何帮助非常感谢。
答案 0 :(得分:0)
如果您只想单次触摸执行ACTION_MOVE, 然后使用
ev.getPointerCount();
这给出了指针的数量。如果此计数大于1,则不执行移动操作。