我在我的android应用程序中有一个显示许多标记(〜20-50)的地图。但是,当我尝试滚动/缩放时,该应用的性能非常差(在Google Android Maps中,我做了一个比萨饼示例搜索,并且发现了20-50个结果,并且在缩放/滚动时没有注意到任何特定的性能问题地图)。Android地图性能很差,因为有很多覆盖?
这里是我的(伪)代码:
onCreate() {
....
drawable = this.getResources().getDrawable(R.drawable.marker1);
itemizedOverlay = new MyItemizedOverlay(drawable,mapView);
...
callWebServiceToRetrieveData();
createMarkers();
}
createMarkers(){
for(elem:bigList){
GeoPoint geoPoint = new GeoPoint((int)(elem.getLat()*1000000), (int) (elem.getLon()*1000000));
OverlayItem overlayItem = new OverlayItem(geoPoint, elem.getName(), elem.getData());
itemizedOverlay.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay);
}
mapView.invalidate();
}
的MyItemizedOverlay.addOverlay看起来是这样的:
public void addOverlay(OverlayItem overlay) {
m_overlays.add(overlay);
populate();
}
不仅如此叫
,但你可以在覆盖多个标记。你的伪代码被写入的方式,你添加*相同的覆盖*每个标记一次 - 'mapOverlays.add(itemizedOverlay);' - 这不会帮助你。 – CommonsWare 2010-04-17 20:37:27
我该如何让这更好? – Dave 2010-04-17 21:07:52
我也会很感兴趣。 – 2012-12-05 16:21:35