如何检测双击拖动?

Posted

技术标签:

【中文标题】如何检测双击拖动?【英文标题】:How do you detect a double tap drag? 【发布时间】:2015-06-23 20:36:02 【问题描述】:

我正在制作一个类似于宝石迷阵的游戏,并想检测到这一点。 在我当前的实现中,我能够获得滑动效果。我还想检测游戏中不同功能的双击拖动效果。

代码:

@Override
public boolean onTouch(MotionEvent e, int scaledX, int scaledY) 

    if (e.getAction() == MotionEvent.ACTION_DOWN && board.touchBoard(scaledX, scaledY) ) 
        recentTouchY = scaledY;
        recentTouchX = scaledX;

        board.whichCell(scaledX,scaledY);

        touchedCell = board.whichCellTouched(scaledX,scaledY);
        //board.swapClearShape(touchedCell.getOffX(),touchedCell.getOffY());
     else if (e.getAction() == MotionEvent.ACTION_UP)  //NEED TO ADD IF TOUCH BOARD AREA

        //swipe event
        if (scaledX - recentTouchX < -25) 

            System.out.println("SWAPPED LEFT");
            Assets.playSound(Assets.swapSound);
            board.setSwapLeft(true);

        
        else if (scaledX - recentTouchX > 25) 
            System.out.println("SWAPPED RIGHT");
            Assets.playSound(Assets.swapSound);
            board.setSwapRight(true);

        
        //swap down
        else if(scaledY- recentTouchY > 25)
            System.out.println("SWAPPED DOWN");
            Assets.playSound(Assets.swapSound);
            board.setSwapDown(true);

        
        //swap up
        else if(scaledY- recentTouchY < -25)
            System.out.println("SWAPPED UP");
            Assets.playSound(Assets.swapSound);
            board.setSwapUp(true);

        

    
    return true;

我不是在寻找两个手指拖动,而是一个触摸,然后另一个触摸,然后拖动

【问题讨论】:

这个问题有一个很好的答案***.com/a/14873942/1061944 How to implement a "Two Finger Drag" gesture on android?的可能重复 我不是在寻找两个手指拖动,而是一个触摸,然后另一个触摸,然后拖动。 @Syeda Zunairah 【参考方案1】:

您可以使用GestureDetector.OnDoubleTapListener 来检测双击手势并触发标志。然后在您的 onTouch (MotionEvent.ACTION_MOVE) 上执行拖动逻辑。

如果使用 onDoubleTapEvent(MotionEvent e) 方法,则可以检测到双击手势之间的事件,并在第二个 ACTION_UP 事件之前触发标志。

以下是双击监听器实现的示例: http://developer.android.com/training/gestures/detector.html

【讨论】:

以上是关于如何检测双击拖动?的主要内容,如果未能解决你的问题,请参考以下文章

如何检测 MudBlazor 中表格行的双击?

如何在javafx中实现双击缩放? [复制]

Android:如何检测双击?

如何检测视图上的双击? [复制]

Objective-c:如何检测视图上的双击?

如何检测 QTableView 中的双击