0

我有一个基于 Google MapView 的应用程序,其中包含许多大型矢量叠加层。屏幕上一次最多可以有 500 个复杂多边形。在我的手机(Android 2.3.4)上,无论是否需要,都会在短时间内自动触发 MapView 的重绘。

问题:
由于大地图重绘时间UI响应可能很慢。例如,打开一个菜单可能需要大约一秒钟。任何对话框的响应也很差。

问题:
是否可以关闭 MapView 的自动重绘?或任何其他想法如何改善 UI 响应?

*MapView.SetEnabled(false) 不会这样做,MapView 只会变得不可点击。MapView.setWillNotDraw(true) 让我黑屏。

*据我所知,在 Android 2.2 上不会发生自动重绘(需要 MapView.Invalidate() 才能查看任何更改)。也许不仅是操作系统/库版本,还有硬件问题。

4

1 回答 1

1

据我对 MapView 的了解,只有当您拖动地图或放大/缩小或调用 map.postInvalidate() 时,才会重新绘制地图。现在回答你的问题:

“是否可以关闭 MapView 的自动重绘?” 是的。您将不得不覆盖 MapView 的 onDraw() 方法,因为它是在绘制/重绘地图时调用的 onDraw() 方法,基本上,您将需要一个布尔控制变量,您可以使用它来更改整个应该绘制地图(默认绘制是通过使用 super.onDraw() 调用完成的)或者如果您只需要专门绘制一些叠加层等。

于 2012-08-11T02:21:57.997 回答