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