我正在开发一个需要带有大量对象的2D图形视图的Android应用程序。这是我基本上需要展示的内容:
就我而言,可能有数百个空间分布的对象。此视图的行为类似于地图,因此用户可以水平和垂直滚动,放大和缩小。它还需要单击事件处理,因此用户可以单击任何三角形,然后我应该显示与该特定三角形相关的一些扩展信息。
我最关心的是三件事:
onDraw()
处理程序中重新绘制所有对象,那将非常慢。此外,我甚至不需要绘制所有这些对象,因为根据缩放级别和滚动位置,它们中的一些是不可见的。这些需要使用我不想手动实现的四叉树。是否有任何图书馆可以帮助我完成这些任务?我不想花3天时间做我认为必须已经实施的东西。
答案 0 :(得分:2)
Canvas
包的android.graphics
类中的所有方法都应该足够了。 Canvas
执行裁剪(意味着绘图命令如果不可见则会被丢弃),因此如果图像是静态的,您可以将其渲染为Picture
并在onDraw()
上绘制。
我认为绘图方法有计算边界并返回它们的方法。请参阅Path
的{{1}}。