我正在尝试在地图上以大约300点显示一个png(可绘制)。我正在从Sqlite表中检索坐标,并将其转储到游标中。当我尝试通过游标进行解析以显示它们时,将永远需要绘制图像,每个图像约0.5秒。我发现这很慢,所以对如何提高性能有一些了解会有所帮助。这是执行渲染的代码片段:
while (!mFlavorsCursor.isAfterLast())
{
Log.d("cursor",""+(i++));
point = new GeoPoint(
(int)(mFlavorsCursor.getFloat(mFlavorsCursor.getColumnIndex(DataBaseHelper.KEY_LATITUDE))*1000000),
(int)(mFlavorsCursor.getFloat(mFlavorsCursor.getColumnIndex(DataBaseHelper.KEY_LONGITUDE))*1000000));
overlayitem = new OverlayItem(point, "", "");
itemizedoverlay.addOverlay(overlayitem);
itemizedoverlay.doPopulate();
mFlavorsCursor.moveToNext();
}
mapOverlays.add(itemizedoverlay);
我试图隔离所有步骤,但看起来很慢:
itemizedoverlay.doPopulate();
这是我类中的公共方法,该方法扩展了运行私有populate()方法的ItemizedOverlay。
最佳答案
在填充所有项目之前,请勿致电doPopulate()
。