如何在我的自定义 osmdroid 地图上设置拖动开始和结束侦听器?
How to set Drag Start and End listener on my custom osmdroid map?
我需要在我的地图中为拖动事件显示祝酒词,下面是我的代码,当我执行拖动结束时我只收到 "Drag Started" 消息-事件。我怎样才能做到?
public void onDragListener() {
osm.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent paramScrollEvent) {
// public boolean onDrag(boolean b) {
int drag = DragEvent.ACTION_DRAG_STARTED;
if (drag == 1) {
Toast.makeText(getBaseContext(), "Drag Started",
Toast.LENGTH_LONG).show();
}
int drag1 = DragEvent.ACTION_DRAG_ENDED;
if (drag1 == 1) {
Toast.makeText(getBaseContext(), "Drag Stopped",
Toast.LENGTH_LONG).show();
}
return true;
}
}));
}
任何帮助将不胜感激,谢谢
逻辑基本上是不正确的,它只会显示拖动开始的吐司。这就是修复吐司的方法。
在 class 级别定义变量。
private Context ctx;
然后赋值
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_location);
ctx = getApplicationContext();
然后在您的代码中使用它
map.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent paramScrollEvent) {
// public boolean onDrag(boolean b) {
IGeoPoint ij = map.getMapCenter();
Double lat = ij.getLatitude();
Double lon = ij.getLongitude();
Toast.makeText(ctx, lat+","+lon, Toast.LENGTH_SHORT).show();
return true;
}
@Override
public boolean onZoom(ZoomEvent event) {
return false;
}
}));
您不能直接滚动 start/end 或缩放 up/down...
在 setMapListener 中使用 'DelayedMapListener' 以延迟触发事件。
像这样:
map.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent event) {
//do something
return true;
}
@Override
public boolean onZoom(ZoomEvent event) {
//do something
return false;
}
}, 100));
我需要在我的地图中为拖动事件显示祝酒词,下面是我的代码,当我执行拖动结束时我只收到 "Drag Started" 消息-事件。我怎样才能做到?
public void onDragListener() {
osm.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent paramScrollEvent) {
// public boolean onDrag(boolean b) {
int drag = DragEvent.ACTION_DRAG_STARTED;
if (drag == 1) {
Toast.makeText(getBaseContext(), "Drag Started",
Toast.LENGTH_LONG).show();
}
int drag1 = DragEvent.ACTION_DRAG_ENDED;
if (drag1 == 1) {
Toast.makeText(getBaseContext(), "Drag Stopped",
Toast.LENGTH_LONG).show();
}
return true;
}
}));
}
任何帮助将不胜感激,谢谢
逻辑基本上是不正确的,它只会显示拖动开始的吐司。这就是修复吐司的方法。
在 class 级别定义变量。
private Context ctx;
然后赋值
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_location);
ctx = getApplicationContext();
然后在您的代码中使用它
map.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent paramScrollEvent) {
// public boolean onDrag(boolean b) {
IGeoPoint ij = map.getMapCenter();
Double lat = ij.getLatitude();
Double lon = ij.getLongitude();
Toast.makeText(ctx, lat+","+lon, Toast.LENGTH_SHORT).show();
return true;
}
@Override
public boolean onZoom(ZoomEvent event) {
return false;
}
}));
您不能直接滚动 start/end 或缩放 up/down... 在 setMapListener 中使用 'DelayedMapListener' 以延迟触发事件。 像这样:
map.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent event) {
//do something
return true;
}
@Override
public boolean onZoom(ZoomEvent event) {
//do something
return false;
}
}, 100));