【问题标题】:Android multiple ACTION_MOVEAndroid 多个 ACTION_MOVE
【发布时间】:2011-09-04 19:27:37
【问题描述】:

MotionEvent 类的第一次按下为 ACTION_DOWN,任何后续按下为 ACTION_POINTER_DOWN,与 ACTION_UP 相同。显然,从我所看到的情况来看,ACTION_MOVE 没有等效项。我希望能够通过拖动同时移动多个可绘制对象。照原样,它适用于多次按下(只需 invalidate() 并在当前 y 位置重绘),但一次只能拖动一个可绘制对象。我尝试制作一个 for 循环来遍历每个指针,但没有骰子。有什么建议吗?

    if(touchnX >= f.getLeft() &&
        touchnX <= f.getRight() &&
        touchnY <= f.getBottom() &&
        touchnY >=f.getTop()){
            f.moveThumb(touchnY);
            break;
    }

这基本上就是代码。我只需要知道如何捕捉后续的拖累。

【问题讨论】:

  • 每个指针都有自己的位置数据。此数据与允许在屏幕上移动的 drawables 无关。您可能有一些错误的代码在某处控制此过程。上面没有足够的帖子来说明。
  • 我知道每个指针都有自己的数据。我的问题是,如何同时为多个指针实现 ACTION_MOVE 案例?比如 ANCTION_DOWN 和 ACTION_POINTER_DOWN。

标签: android drag drawable multi-touch


【解决方案1】:

你能通过每个指针显示 for 循环吗?对我有用的是:

if (event.getActionMasked() == MotionEvent.ACTION_MOVE) {
    int numPointers = event.getPointerCount();
    for (int i = 0; i < numPointers; i++) {
        handleMoveEvent(event.getX(i), event.getY(i));
    }
}

但是,这将处理所有指针的移动事件,即使只移动了一个。我不太确定如何解决这个问题。

【讨论】:

    猜你喜欢
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-14
    • 2012-03-12
    • 1970-01-01
    相关资源
    最近更新 更多