我正在尝试在地图上以大约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()

08-26 22:31