我目前正在使用从 OsmDroid 上的 Drawable 扩展的类。在这堂课上,我为从互联网上收到的每辆车画了一个几何形状。我想在每辆车上添加一个监听器,以便在我们触摸汽车时提供一些信息。使用 OverlayItem 我们可以做到这一点:
ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
carOverlay.draw(new Canvas());
overlayItem = new OverlayItem("test", ""+i, geoPoint);
overlayItem.setMarker(carOverlay.getCurrent());
items.add(overlayItem);
ItemizedOverlay<OverlayItem> overlay = new ItemizedOverlayWithFocus<OverlayItem>(this.getApplicationContext(), items,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
Log.i("Touch","you just tap the car");
return true;
}
@Override
public boolean onItemLongPress(final int index, final OverlayItem item) {
return false;
}
});
使用这段代码,我可以看到我刚刚绘制的图像,但是当我触摸汽车时没有任何事件,如果我删除线:
overlayItem.setMarker(carOverlay.getCurrent());
为了让显示默认标记而不是我的自定义标记,触摸事件发生。
那么我做错了什么?一定是一样的吧?