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

  • 展开的图将很大,因此用户需要能够垂直和水平滚动。我看了看ScrollView和Horizo​​ntalScrollView,但它们不能同时垂直和水平滚动。所以我希望知道我应该使用哪个顶级容器。
  • 我还希望图形可以通过捏合手势进行缩放,以便用户可以放大图形的一小部分。但是我也希望图节点是交互式的,因此用户可以点击它们,在其中输入文本,然后用手指移动它们。我应该将每个节点实现为单独的View对象吗?如果是这样,如何使所有节点一起缩放?

  • 谢谢。

    最佳答案

    对于此类事情,我绝对会依赖于自定义 View ,与使用标准布局相比,它们将为您提供更多的自由和效率。

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

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

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

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

    10-11 22:52
    查看更多