0

目前,我有一个在谷歌地图上放置图标的 Android 应用程序。我想知道是否有办法让我的drawables可点击,这样我就可以有一个弹出菜单,为用户提供某种菜单选项。我正在实现这样的drawable:

Drawable drawable1 = Drawable.createFromStream(getAssets().open("pics/pin1.png"), null);    
CustomItemizedOverlay itemizedOverlay1 = new CustomItemizedOverlay(drawable1, this);

GeoPoint point1 = new GeoPoint(latitudep1, longitudep1);
OverlayItem overlayitem1 = new OverlayItem(point1, "Icon", "#1");

itemizedOverlay1.addOverlay(overlayitem1);
mapOverlays.add(itemizedOverlay1);

提前致谢!

4

2 回答 2

1

试试这个方法

public class AddItemizedOverlay extends ItemizedOverlay<OverlayItem> {

private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();

private Context context;
Intent intent;
MapView mapview;

public AddItemizedOverlay(Drawable defaultMarker) {
    super(boundCenterBottom(defaultMarker));
}

public AddItemizedOverlay(Drawable defaultMarker, Context context) {
    this(defaultMarker);
    this.context = context;
}

@Override
protected OverlayItem createItem(int i) {
    return mapOverlays.get(i);
}

@Override
public int size() {
    return mapOverlays.size();
}

@Override
protected boolean onTap(int index) {
    OverlayItem item = mapOverlays.get(index);

    /*intent = new Intent(context, Locationdisplay.class);

    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// changed

    Bundle bundle = new Bundle();
    bundle.putString("namevalue", item.getTitle());
    intent.putExtras(bundle);

    context.startActivity(intent);*/
        Toast.makeText(context, "tapped", 1).show();

    return true;
}

public void addOverlay(OverlayItem overlay) {
    mapOverlays.add(overlay);
    this.populate();
}

}

于 2013-04-13T12:58:04.080 回答
0

不确定是否可能,但您可以在地图上显示 ImageViews 而不是 Drawables 吗?使用 ImageViews 可以很容易地在它们上使用点击事件。

于 2013-04-13T15:32:20.607 回答