我正在开发一个Android应用程序,需要显示具有大量对象的2D图形视图。这就是我基本需要显示的内容:
在我的情况下,可能有数百个空间分布的对象。这个视图将像地图一样运行,因此用户可以水平和垂直滚动,缩放和缩小。它还需要点击事件处理,以便用户能够单击任何三角形,然后我应该显示与该特定三角形相关的扩展信息。
我主要关注以下3个问题:
- 如果我在我的
onDraw()
处理程序中重新绘制所有对象,那将非常慢。此外,当我不需要绘制所有这些对象时也存在这种情况,因为某些对象根据缩放级别和滚动位置不可见。这需要使用四叉树,但我不想手动实现。 - 所有这些对象都定义为(x,y,rotation,type),因此如果客户决定我们需要“显示全部”按钮,我需要实现计算边界框的功能。
- 我需要能够处理所有这些形状的单击事件和(可能)拖动。
是否有任何库可以帮助我完成这些任务?只是不想花费3天时间去处理我相信已经完成的任务。
Canvas
在优化绘图调用方面做得非常好,主要瓶颈几乎总是填充限制。 - Jasoneer