用于显示图形(节点和边,二维)的 Android 组件?

标签 android graph components uicomponents

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

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

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

谢谢。

最佳答案

对于这类事情,我肯定会依赖自定义 View ,与使用标准布局相比,它们会给你更多的自由和效率。

实现可 ScrollView 是 quite easy ,如果您支持 API >= 8(请参阅 ScaleGestureDetector),则实现捏合手势会容易得多。不过,使图形元素具有交互性和可编辑性将是另一回事。

真正更好的方法可能是创建一个自定义布局,它将托管可编辑的图形元素(自定义 View )并绘制它们的关系。它会更加优雅、干净、可扩展、可维护和可重用,但它需要更多的设计。但我相信它会得到丰厚的返回。

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

关于用于显示图形(节点和边,二维)的 Android 组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6071169/

相关文章:

java - 如何在android studio中设置边框内的背景颜色?

arrays - GSON 阵列,错误消息 : Expected a string but was BEGIN_ARRAY

python - 删除边缘时如何保留路径 networkx 图

tensorflow - 关闭 tensorflow 签名

javascript - 提交由多个组件组成的表单

android - "Program type already present"是什么意思?

java - Android Studio 是否完全支持 JDK 1.8?

matlab - 重新组合单个树中节点的路径

delphi - 从自定义类派生的组件属性

delphi - Delphi 中组件的定位提示