我使用asmdroid 4.2和bonuspack 4.5。
我的代码添加标记:
Marker startMarker = new Marker(mapView);
startMarker.setPosition(new GeoPoint(locationA,locationB));
startMarker.setIcon(getResources().getDrawable(drawable));
startMarker.setTitle("jkdfghspdifj");
startMarker.setAnchor(Marker.ANCHOR_CENTER, 1.0f);
MarkerInfoWindow infoWindow = new MyInfoWindow(R.layout.bonuspack_bubble,
mapView,title);
startMarker.setInfoWindow(infoWindow);
mapView.getOverlays().add(startMarker);
mapView.zoomToBoundingBox(boundingBox);
mapView.invalidate();
一切正常:)
我点击标记并显示弹出窗口。当你点击卡片本身时如何做到这一点,标记消失了? (此时它会消失,除非再次点击它)
答案 0 :(得分:6)
要在点击地图上的任意位置时关闭所有打开的弹出窗口,请按照Tutorial 5,第16章处理地图事件
要在另一个标记上打开弹出窗口时关闭一个打开的弹出窗口,一个简单的解决方案是在所有标记之间共享相同的infoWindow对象。
或者调用“InfoWindow.closeAllInfoWindowsOn(map);”在onOpen。
答案 1 :(得分:0)
粘贴在我的MarkerInfoWindow类中 在metO onOpen
public void onOpen(Object arg0) {
Marker current = (Marker) arg0;
for(int i=0; i<mMapView.getOverlays().size(); ++i) {
Overlay o = mMapView.getOverlays().get(i);
if (o instanceof Marker) {
Marker m = (Marker) o;
if(m!=current)
m.hideInfoWindow();
}
}
}