0

私が今達成しているのは、onTouch(View v、MotionEvent event)イベントを使用して最初のタッチを取得することだけです。

しかし、mapViewを継続的にドラッグするときのx、y値を知りたいです。

誰かが答えを知っているなら、それは大いにありがたいです。

4

2 に答える 2

1

MotionEvent 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 に答える