ItemizedOverlay的在mapview上弹出气泡
ItemizedOverlay的在mapview上弹出气泡
首先定义一个overlay extends ItemizedOverlay,例如:
class RestaurantOverlay extends ItemizedOverlay<OverlayItem> {
private List<OverlayItem> items = new ArrayList<OverlayItem>();
private Drawable marker = null;
public RestaurantOverlay(Drawable defaultMarker) {
super(defaultMarker);
this.marker = defaultMarker;
}
//添加OverlayItem对象
public void addOverlay(OverlayItem overlay) {
items.add(overlay);
populate();
}
protected boolean isRouteDisplayed() {
return false;
}
@Override
protected OverlayItem createItem(int i) {
return items.get(i);
}
@Override
public int size() {
return items.size();
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
super.draw(canvas, mapView, shadow);
boundCenterBottom(marker);
}
}
其次,获取要加载overlay的mapview句柄,调用mapview.getOverlays()方法,返回一个List<OverLay>对象。
然后,定义自己的overlay,如:RestaurantOverlay me = new RestaurantOverlay(Drawable对象);通过List<Overlay>对象的add(),把自己的Overlay添加上去。但还要为me添加OverlayItem对象,既可以显示图标在地图上。
最后,就是怎么点击标记图标,显示详细信息的泡泡呢?可以通过ItemizedOverlay内部类OnFocusChangeListener的onFocusChanged方法实现。如:
private final ItemizedOverlay.OnFocusChangeListener onFocusChangeListener = new ItemizedOverlay.OnFocusChangeListener() {
public void onFocusChanged(ItemizedOverlay overlay, OverlayItem newFocus) {
if (popView != null) {
popView.setVisibility(View.GONE);
}
if (newFocus != null) {
MapView.LayoutParams geoLP = (MapView.LayoutParams) popView
.getLayoutParams();
geoLP.point = newFocus.getPoint();// 这行用于popView的定位
TextView title = (TextView) popView
.findViewById(R.id.map_bubbleTitle);
title.setText(newFocus.getTitle());
TextView desc = (TextView) popView
.findViewById(R.id.map_bubbleText);
if (newFocus.getSnippet() == null
|| newFocus.getSnippet().length() == 0) {
desc.setVisibility(View.GONE);
} else {
desc.setVisibility(View.VISIBLE);
desc.setText("距离当前位置:"+newFocus.getSnippet()+"公里");
}
citymap.updateViewLayout(popView, geoLP);
popView.setVisibility(View.VISIBLE);
}
}
};
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiongyingzhuantu/archive/2010/11/15/6011000.aspx 1 楼 yu_long 2011-05-13 楼主有源码吗,发给我一份,万分感谢!我的QQ:295047822
email:javayulong@126.com