2

我正在创建一个可以在图片上绘制的应用程序。绘图是通过一个pictureView、一个带有位图的canvas和一个onTouchListener来实现的。我想添加一个功能,当有两根手指按时将撤消最后一个操作。我通过这样做实现了它:

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_UP ){
    //undo
}

当有两根手指按时,我想撤消所有绘图动作。我尝试过这样的事情,但它只会检测一次。

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN ){
    numberOfDown++;
        if(numberOfDown>100){
            //undo
        }
}

我怎样才能达到我想要的?

4

1 回答 1

1

我不确定主手指或非主手指的动作索引是否从零开始,因此您可能需要将这些 0 翻转为 1。

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_DOWN && event.getActionIndex()==0){
    mSecondFingerTimeDown = System.currentTimeMillis();
}

if(event.getActionMasked() == MotionEvent.ACTION_POINTER_UP && event.getActionIndex()==0 ){
    if ((System.currentTimeMillis()-mSecondFingerDownTime) >= LONG_PRESS_TIME_MILLIS)
        //long double-press action
    else
        //short double-press action
}
于 2013-11-04T18:39:33.840 回答