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
}
});
作為初學者,目前就只能想到這些方法去實現彈窗效果,希望各位大大給予改進,指導!