1. 程式人生 > >Android百度地圖3.0.0點選Marker彈出覆蓋物

Android百度地圖3.0.0點選Marker彈出覆蓋物

最近在學習百度地圖,發現百度地圖更新後,好多東西都改變了,ItemizedOverlay<OverlayItem>這個類更是找不到了。於是自己查了下最新的文件,發現彈窗效果百度提供InfoWindow來實現。

InfoWindow(v, LatLng, listener); 需要我們提供一個View,一個點選的LatLng,和一個Listener。

程式碼如下:

mBaiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {

@Override
public boolean onMarkerClick(Marker marker) {
// TODO Auto-generated method stub
View view = LayoutInflater.from(getApplicationContext())
.inflate(R.layout.myview, null);
final LatLng ll = marker.getPosition();
Point p = mBaiduMap.getProjection().toScreenLocation(ll);
p.y -= 47;
LatLng llInfo = mBaiduMap.getProjection().fromScreenLocation(p);
mInfoWindow = new InfoWindow(view, llInfo, null);
MapStatusUpdate m = MapStatusUpdateFactory.newLatLng(ll);
mBaiduMap.setMapStatus(m);
mBaiduMap.showInfoWindow(mInfoWindow);
return true;
}
});

以上是點選Marker的監聽,現在需要彈出一個View。彈出視窗實現了,如何關閉視窗呢?

mBaiduMap.setOnMapStatusChangeListener(new OnMapStatusChangeListener() {

@Override
public void onMapStatusChangeStart(MapStatus arg0) {
// TODO Auto-generated method stub
mBaiduMap.hideInfoWindow();
}

@Override
public void onMapStatusChangeFinish(MapStatus arg0) {
// TODO Auto-generated method stub

}

@Override
public void onMapStatusChange(MapStatus arg0) {
// TODO Auto-generated method stub

}
});

百度工具類Demo地址:http://download.csdn.net/detail/ghost_ty/7631717

作為初學者,目前就只能想到這些方法去實現彈窗效果,希望各位大大給予改進,指導!