java - 你如何检测双击拖动?

标签 java android touch logic drag

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

代码:

@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;
}

我不是在寻找两根手指拖动,而是先触摸然后再触摸再拖动

最佳答案

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

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

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

关于java - 你如何检测双击拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29691638/

相关文章:

java - 从配置的网络中删除网络并启用所有其他网络

java - JDK 11.javax.net.ssl.SSLPeerUnverifiedException : peer not authenticated

iphone - 我应用程序所有屏幕中的字母手势识别

javascript - 移动浏览器触摸事件

android: kSOAP 如何从 kSOAP 响应返回的字符串中获取国家/地区列表

android - 固定的移动触摸设备上的背景图像滚动不会立即更新

java - 使用Google语音视频聊天插件录制语音

java - SQL 实用函数的开源 Java 库?

android - 当用户选择组合框时在 webview 中弹出的 View 的样式

android - 如何在布局中制作从右到左的动画