如何使重叠的图像在Android中可点击?

时间:2011-09-28 18:49:10

标签: android android-layout onclick

我有一张地图图片,我想在地图上绘制一些点/标记。这些标记必须是可点击的。我使用了一个自定义视图类来绘制我所需要的标记。标记正在绘制,但问题是标记不可点击,或者当我在自定义视图上设置onClick侦听器时,整个图像接收到单击事件(无论我点击图像,都会调用onClick,但我只想点击标记来启动onClick)。有人可以帮帮我吗?

1 个答案:

答案 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;
}

}