0

所以我正在使用 osmdroid 地图,并试图在用户像这样拖动地图时设置一个监听器。

mapView.setOnDragListener(new View.OnDragListener() {
        public boolean onDrag(View v, DragEvent event) {
            Log.i(PREFS_NAME, "X:" + String.valueOf(event.getX()));
            Log.i(PREFS_NAME, "Y:" + String.valueOf(event.getY()));
            return false;
        }
    });

现在,一切正常,但是当我将此代码放入程序中时出现错误。

无论如何这是正确的使用方法,因为我希望在用户在地图上移动时得到通知。我希望能够检查用户移动地图的位置,因此我正在观看 getX 和 getY。这样做的原因是,如果地图超出我设置的范围,我可以停止它的移动。

这是正确的方法吗?

4

1 回答 1

0

MapViews 不响应触摸事件,例如onClick()onLongPress()。我要做的是在onCreate()添加这个之前:

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
    float x = ev.getX();
    float y = ev.getY();
    return super.dispatchTouchEvent(ev);
    }

x现在y将包含用户按下的屏幕坐标。希望这可以帮助!

于 2012-06-19T19:35:16.023 回答