我使用包含OverlayItems列表的ItemizedOverlay在MapView顶部显示标记。我的问题是,当OverlayItem使用为叠加层定义的默认标记时,其getMarker()方法返回null。还有另一种方法可以获得该标记图像吗?我想看看我是否可以在onTap()期间为它设置动画。
我在地图上显示了一堆标记,其中许多使用相同的图像,因此我认为最好使用叠加层的默认图像来节省内存。对于这个应用程序,可能会有超过100个标记显示给定的叠加层。
答案 0 :(得分:0)
您有几种不同的方法来解决这个问题。我展示了我所知道的最简单的一个,如果它没有解决你的问题,请告诉我。
public class MyItemizedNewOverlay extends ItemizedOverlay<OverlayNewItem> {
private ArrayList<OverlayNewItem> myOverlays ;
Drawable defaultMarker;
Context context;
public MyItemizedNewOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
this.defaultMarker = defaultMarker;
this.context = context;
myOverlays = new ArrayList<OverlayNewItem>();
populate();
}
. . .
}
使用此功能,您可以在代码中使用onTap()
中的默认标记