-1

我正处于创建我学校的交互式地图的研究阶段,其中有一个地图,每个房间都被标记,当用户点击房间时,会给出关于老师、班级信息和会议时间的信息。地图本身必须有限制地放大和缩小并四处移动。

地图的最终外观将与此处中间图片的线条相似。

创建地图的方法各不相同:

画布绘图

可以使用onDraw()绘制代表每个房间的矩形的方法来创建地图。缺点包括绘制的矩形数量以及可能的电池消耗。我也不知道如何使地图整体移动,所以每个矩形一起移动。实际上,将所有矩形绘制到一个图像上,然后移动图像。

OpenGL

与上述方法相同,但在 OpenGL 中这样做是为了消除部分电池消耗。同样的缺点也适用。

我面临的主要问题是找到和使用最有效的方法以及能够实现缩放和平移功能。

还有什么可能的解决方案?

4

1 回答 1

1

我没有其他选择可以建议,但由于我或多或少在我的应用程序中实现了相同的功能,我建议使用 OpenGL(通过JOGL)。在从多个图块渲染单个地图的情况下,您绘制一个图块,glTranslate 到相邻图块所在的位置并绘制下一个图块,等等。

滚动地图是通过在开始绘制图块之前将 glTranslate 放置在适当的偏移量来实现的。缩放是通过在 glTranslate 之后以适当的速率放置 glScale 来实现的。

当然,有等效的画布绘制命令,但我总是发现自己使用 OpenGL 实现这样的功能要容易一些。

于 2012-10-22T15:06:15.967 回答