所以我正在使用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。这样做的原因是,如果超出我设定的范围,我可以停止地图移动。
这是正确的方法吗?
答案 0 :(得分: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
现在将包含用户按下的屏幕坐标。希望这有帮助!