为我的Map设置onDragListener?

时间:2012-02-03 19:35:36

标签: android map drag osmdroid

所以我正在使用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。这样做的原因是,如果超出我设定的范围,我可以停止地图移动。

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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

xy现在将包含用户按下的屏幕坐标。希望这有帮助!