Android 滚动后OsmDroid加载标记
我想在滚动后加载标记。在GoogleMaps中,我使用了OnCameraChange,在OsmDroid中我使用了OnScroll,但在我移动地图之前一直被调用。如何检测滚动何时结束为OnCameraChange 如果我理解你的意思是正确的,osmdroid(基本上是onScrollEnd)并不支持它。是这样吗?您想在滚动结束时显示一个事件吗 仅当地图处于平移过程中时,才会触发On Scroll。如果你正在经历不同的行为,这可能是一个错误。事实上,不久前也有类似的报道。它应该在osmdroid的5.2或更新版本中修复 要在滚动完成后触发,我建议跟踪最后一个onScroll事件的时间,然后在后台线程中定期检查最后一个事件的时间戳 另一个选项是扩展org.osmdroid.views.overlay.DefaultOverlayManager并覆盖所需的任何按键或触摸事件 然后,可以使用此选项将自定义覆盖管理器附加到地图视图Android 滚动后OsmDroid加载标记,android,osmdroid,Android,Osmdroid,我想在滚动后加载标记。在GoogleMaps中,我使用了OnCameraChange,在OsmDroid中我使用了OnScroll,但在我移动地图之前一直被调用。如何检测滚动何时结束为OnCameraChange 如果我理解你的意思是正确的,osmdroid(基本上是onScrollEnd)并不支持它。是这样吗?您想在滚动结束时显示一个事件吗 仅当地图处于平移过程中时,才会触发On Scroll。如果你正在经历不同的行为,这可能是一个错误。事实上,不久前也有类似的报道。它应该在osmdroid的
mapView.setOverlyManager(yourManager)代码>如果您指的是滚动后的
- 地图的当前可见部分已更改
- 包括动画的滚动/缩放已完成
- 在最后200毫秒内没有滚动/缩放
您可以尝试添加一个DelayedMapListener
,作为在最后一次滚动/缩放后触发200毫秒的映射侦听器
/** Fire if there is more than 200 millisecs no zoom/scroll update markers */
protected static final int DEFAULT_INACTIVITY_DELAY_IN_MILLISECS = 200;
// If there is more than 200 millisecs no zoom/scroll update markers
mMapView.setMapListener(new DelayedMapListener(new MapListener() {
@Override
public boolean onScroll(ScrollEvent event) {
reloadMarker();
return false;
}
@Override
public boolean onZoom(ZoomEvent event) {
reloadMarker();
return false;
}
}, DEFAULT_INACTIVITY_DELAY_IN_MILLISECS));
OSMmap.setMapListener(new DelayedMapListener(new MapListener() {
public boolean onZoom(final ZoomEvent e) {
reloadMarker();
return true;
}
public boolean onScroll(final ScrollEvent e) {
reloadMarker();
return true;
}
}, 1000 ));