我正在实现一个在Android手机上检测并绘制多个指针的应用程序。
但是,我注意到当我使用手边,或者当我尝试使其处理大面积时,我的应用程序会收到多个ACTION_CANCEL事件。这是我用来处理触摸事件的代码:
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (MotionEventCompat.getActionMasked(event)) {
case MotionEvent.ACTION_DOWN:
Log.e("TouchEvent", "I N I T - D O W N");
onFirstPointerDown(event);
break;
case MotionEvent.ACTION_UP:
Log.e("TouchEvent", "I N I T - U P");
onLastPointerUp(event);
break;
case MotionEvent.ACTION_MOVE:
onPointerMove(event);
break;
case MotionEvent.ACTION_POINTER_DOWN:
Log.e("TouchEvent", "P O I N T E R - D O W N");
onExtraPointerUpDown(event, false);
break;
case MotionEvent.ACTION_POINTER_UP:
Log.e("TouchEvent", "P O I N T E R - U P");
onExtraPointerUpDown(event, true);
break;
default:
Log.e("TouchEvent", "A C T I O N - C A N C E L");
break;
}
return true;
}
但是,当我在手机设置中启用指针调试信息时,会按预期检测到所有内容。
这是我的应用程序的图片,以及android的指针调试信息:
我怎么能处理这种行为?