1

我正在寻找一些代码在双击画布恢复的地方工作。

目前,我有:

    @Override
    public void onTouchEvent(MotionEvent event) {

        float x = event.getX();
        float y = event.getY();
        SurfaceHolder holder = getSurfaceHolder();
        Canvas canvas = null;

        try {
            canvas = holder.lockCanvas();
            if (canvas != null) {
                // Enter it all here
                canvas.restore();


            }
        } finally {
            if (canvas != null)
                holder.unlockCanvasAndPost(canvas);
        }
        super.onTouchEvent(event);
    }

但是,此时它会读取任何手势并恢复屏幕。我只希望它在双击手势时恢复。

我试图让它工作:Android:如何检测双击?但到目前为止我失败了。

谢谢你的帮助 :)

4

1 回答 1

0

好的,这很笨拙,但请尝试以下操作:

private boolean singleTapped = false;
private long lastTapTime = 0;
private long doubleTapInterval = 1000;

@Override
public void onTouchEvent(MotionEvent event) {
    if (!singleTapped) {
        singleTapped = true;
        lastTapTime = System.currentTimeMillis();
        super.onTouchEvent (event);
        return;
    }

    long tapInterval = System.currentTimeMillis() - lastTapTime;
    if (tapInterval <= doubleTapInterval) {
        float x = event.getX();
        float y = event.getY();
        SurfaceHolder holder = getSurfaceHolder();
        Canvas canvas = null;

        try {
            canvas = holder.lockCanvas();
            if (canvas != null) {
            // Enter it all here
            canvas.restore();


            }
        } finally {
            if (canvas != null)
            holder.unlockCanvasAndPost(canvas);
        }
    }

    super.onTouchEvent(event);
}
于 2013-03-08T13:08:50.933 回答