我使用的是asdroid 4.2和bonuspack 4.5。
my code add marker:
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();
一切正常:)
我点击标记,显示弹出窗口。怎么做呢,当你点击卡片本身时,标记消失了?(此时它会消失,除非再次点击它)
要关闭所有打开的弹出窗口,当点击地图上的任何地方,按照教程5,第16章。处理Map事件
要使一个打开的弹出窗口在打开另一个标记上的弹出窗口时关闭,一个简单的解决方案是在所有标记之间共享相同的infoWindow对象。
或者在onOpen中调用"InfoWindow.closeAllInfoWindowsOn(map);"。
粘贴到我的类MarkerInfoWindow中在方法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();
}
}
}