Android检测双指长按

时间:2013-11-04 17:23:36

标签: android ontouchlistener motionevent

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

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

我希望在有两根手指按下时撤消所有绘图操作。 我试过这样的东西,但它只会检测一次。

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

我如何实现我的目标?

1 个答案:

答案 0 :(得分: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
}