Я сейчас использую класс, который простирается от Drawable на OsmDroid. И в этом классе я рисую геометрическую форму для каждого автомобиля, который я получаю из Интернета. Я хотел бы добавить слушателя на каждый автомобиль, чтобы дать некоторую информацию, когда мы касаемся автомобиля. С OverlayItem мы можем сделать это:ItemizedOverlay и пользовательский маркер на OsmDroid для Android, больше не касаются события
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());
, чтобы показывать маркер по умолчанию вместо моего пользовательского маркера, происходят события касания.
Так что я делаю неправильно? должно быть то же самое?