我正在尝试在大约 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。