0

我现在实现的只是使用 onTouch(View v, MotionEvent event) 事件来获得第一次触摸。

但是我想知道当我连续拖动 mapView 时的 x,y 值。

如果有人知道答案,将不胜感激。

4

2 回答 2

1

运动事件 ACTION_MOVE

http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_MOVE

教程展示了如何使用它

于 2012-06-28T11:12:11.697 回答
1

它非常简单。这是一些代码,它返回触摸的 x 和 y 位置,然后返回一个角度以根据触摸位置旋转图像。

//TouchEvent handler
@Override
public boolean onTouchEvent(MotionEvent event) {
    Log.d(TAG, "onTouchEvent called...");
    x = event.getX();
    y = event.getY();

    switch (event.getAction()) {
    case MotionEvent.ACTION_MOVE:

        float dx = x - mPreviousX;
        float dy = y - mPreviousY;

        //Reverse direction of rotation if above midline
        if (y > getHeight() / 2) {
            dx = dx * -1;
        }

        //Reverse direction of rotation if of the midline
        if (y < getWidth() / 2) {
            dy = dy * -1;
        }

        Main.mAngle += (dx + dy) * TOUCH_SCALE_FACTOR;

        TextView txtView = (TextView) ((Activity)context).findViewById(R.id.mangle);
        txtView.setText("Angle: " + String.valueOf(Main.mAngle));

        requestRender();
    }

    mPreviousX = x;
    mPreviousY = y;

    return true;
}
于 2012-06-28T11:34:04.547 回答