用于显示图形的Android组件(节点和边缘,2D)?

Ian*_*Ian 7 android components graph uicomponents

我正在开发类似于"思维导图"程序(如思维空间)的Android应用程序的起点.它显示了一些图形节点(包含文本,可能是图像)和连接它们的边.我可以处理图形算法,但我有两个关于Android组件的不确定点用于显示这些内容:

  1. 扩展的图形将非常大,因此用户需要能够垂直和水平滚动.我查看了ScrollView和Horizo​​ntalScrollView,但它们无法垂直和水平滚动.所以我希望知道我应该使用哪个顶级容器.

  2. 我还希望图形可以通过捏合手势进行缩放,以便用户可以放大图形的一小部分.但我也希望图形节点是交互式的,因此用户可以点击它们,在其中键入文本并用手指移动它们.我应该将每个节点实现为单独的View对象吗?如果是这样,我如何让所有节点一起缩放?

谢谢.

big*_*nes 2

我肯定会依赖自定义视图来完成此类事情,它们会给您比使用标准布局更多的自由度和效率。

实现可滚动视图非常简单,如果您支持 API >= 8(请参阅 参考资料),那么实现捏合手势会容易得多ScaleGestureDetector。不过,使图形元素具有交互性和可编辑性则是另一回事。

更好的事情可能是创建一个自定义布局,它将托管可编辑的图形元素(自定义视图)并绘制它们的关系。它将更加优雅、干净、可扩展、可维护和可重用,但需要更多的设计。但我确信这会得到巨大的回报。

(这对我来说是一个非常雄心勃勃的项目,所以......祝你好运!)