我有一张地图图片,我想在地图上绘制一些点/标记。这些标记必须是可点击的。我使用了一个自定义视图类来绘制我所需要的标记。标记正在绘制,但问题是标记不可点击,或者当我在自定义视图上设置onClick侦听器时,整个图像接收到单击事件(无论我点击图像,都会调用onClick,但我只想点击标记来启动onClick)。有人可以帮帮我吗?
答案 0 :(得分:0)
您必须创建自定义MapOverlay并在内部放置代码函数。在上面的代码中,覆盖OnTap方法。
public class MapOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
public MapOverlay(Drawable defaultMarker,Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return mOverlays.get(i);
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
public void clearOverlay() {
mOverlays.clear();
populate();
}
@Override
public int size() {
// TODO Auto-generated method stub
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}