在Android上处理大的触摸表面

时间:2017-05-13 18:26:33

标签: java android events event-handling touch

我正在实现一个在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的指针调试信息:

我怎么能处理这种行为?

0 个答案:

没有答案