當做event.getAction()
,如果我用3個手指觸摸。讓我們按照他們觸摸的順序調用他們的手指0 1 2,如果我刪除2然後1,MotionEvent.ACTION_POINTER_UP
不會切換到,同樣當我放下手指時,MotionEvent.ACTION_POINTER_DOWN
不會切換到。但是如果需要的話,交換機仍然會去MotionEvent.ACTION_MOVE
。但是當我將開關的參數更改爲event.getActionMasked()
時,所有情況都將被正確調用。我想明白爲什麼這是因爲在我的單鍵觸摸開關語句中,event.getAction()
工作正常。爲什麼event.getActionMasked切換到這些情況時,event.getAction不
//replace with getAction(), first and third case don't always get called. Only sometimes.
switch(event.getActionMasked())
{
case MotionEvent.ACTION_POINTER_DOWN:
prevZoomX = Math.abs(x1-x2);
prevZoomY = Math.abs(y1-y2);
break;
case MotionEvent.ACTION_MOVE:
float deltaX = (Math.abs(x1-x2) - prevZoomX);
float deltaY = (Math.abs(y1-y2) - prevZoomY);
Log.d("zoom","dx: " + deltaX/(mDensity/2) + " prevZoomX " + prevZoomX);
Log.d("zoom","dy: " + deltaY/(mDensity/2) + " prevZoomY " + prevZoomY);
mRenderer.zoom = Math.abs(deltaX) > Math.abs(deltaY) ? deltaX/(mDensity/2) : deltaY/(mDensity/2);
Log.d("zoom","" + mRenderer.zoom);
prevZoomX = Math.abs(x1-x2);
prevZoomY = Math.abs(y1-y2);
break;
case MotionEvent.ACTION_POINTER_UP:
Log.d("finger","fingers left: " + event.getPointerCount());
break;
}
這樣看來如此。我想知道爲什麼。 – Ion