我试图让这个功能正常工作,但我遇到了麻烦。当我触摸View时,getPointerCount()方法总是返回0指针,当我用一根手指触摸屏幕时,1。当我用两根或多根手指触摸屏幕时,它总是返回1.你有没有想法?
我试过这段代码,
@Override
public boolean onTouch(View view, MotionEvent me) {
// No dragging during animation at the moment.
// TODO: Stop animation on touch event and return to drag mode.
if (me.getPointerCount() >= 2) {
mAnimate = false;
mEnableTouchPressure = false;
mRenderLeftPage = false;
startCurl(CURL_NONE);
mCurlState = CURL_NONE;
mPageRight.setFlipTexture(false);
mPageLeft.setFlipTexture(false);
return false;
} else {
if (me.getAction() == MotionEvent.ACTION_DOWN) {
Log.e("TAG_EVENT", me.getPointerCount() + "");
} else {
Log.e("TAG_EVENT - 2", me.getPointerCount() + "");
}
}
}
答案 0 :(得分:0)
我认为是因为你应该为要处理的触摸事件返回true。
答案 1 :(得分:0)
您可以阅读关于MotionEvent.ACTION_MASK
的信息。要捕获multiTouch的操作,您可以使用以下代码:
int action = (motionEvent.getAction() & MotionEvent.ACTION_MASK) % 5
switch(action) {
case MotionEvent.ACTION_DOWN:
System.out.println(motionEvent.getPointerCount());
break;
}