在我的应用程序中,要求是当我触摸地图中的任何位置时,我必须创建一个新的叠加层并用标记显示它,如果我点击任何标记的位置,我必须在气球中显示其详细信息。
我的 ItemizedOverlay 类中编写的 onTap() 和 onTouchEvent() 如下:
@Override
protected boolean onTap(int index) {
if(!super.onTap(index)) {
MyOverlayItem<OverlayItem> overlayItem = new MyOverlayItem<OverlayItem>(
createItem(index).getPoint(), createItem(index).getTitle(),
createItem(index).getSnippet(), mapView, activity);
overlayItem.onTap(createItem(index).getPoint(), mapView);
}
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
GeoPoint point = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
addPoint(point);
return true;
}
MyOverlayItem里面的onTap()如下:
public boolean onTap(GeoPoint point, MapView mapView) {
createBalloon(); //creates the balloon view.
return true;
}
我的问题是:
如果我添加此 onTouchEvent(),则不会调用 onTap()。总是有一个新的点被添加。
我怎样才能达到我的要求?我对这两种方法都感到困惑。谁能帮帮我。提前致谢。