这个是自定义且继承自ItemizedOverlay的类
- Java code
public class EventIconOverlay extends ItemizedOverlay<OverlayItem>{ private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); private Context mcontext; public EventIconOverlay(Drawable defaultMarker,Context context) { // super(defaultMarker); super(boundCenterBottom(defaultMarker)); mcontext = context; // TODO Auto-generated constructor stub } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { // TODO Auto-generated method stub super.draw(canvas, mapView, shadow); // boundCenterBottom(marker); } @Override public int size() { // TODO Auto-generated method stub return mOverlays.size(); } @Override protected OverlayItem createItem(int i) { // TODO Auto-generated method stub return mOverlays.get(i); } public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } @Override protected boolean onTap(int index) { return true; }}
我想问的是,在MapActivity中new了一个这个类,并且把图标显示在地图上后,如何隐藏这个图标?
目前我只能通过把它移除的方式,而不是真正地隐藏
- Java code
int length = mapOverlays.size(); Log.e("m_overlays in HideEvent", length+""); for (int i = 0; i < length-1; i++) { if (mapOverlays.get(i) instanceof EventIconOverlay ) { mapOverlays.remove(i); } }// Log.e("m_overlays in HideEvent", length+""); mapView.invalidate();
各位看官给给意见,建议,多谢!
------解决方案--------------------
可以在Item对象中加标志吧,在去对象的时候过滤一下