如何在Android上删除,还原,重新定位Canvas图形?如何通过捏合实现可扩展和放大缩小?

时间:2018-03-12 23:05:27

标签: android android-layout canvas view flowchart

我正在为Android开发流程图绘制应用程序。我实现了形状,工具栏等,现在用户可以将形状拖放到绘图表面,并使用Canvas绘制。我甚至添加了一个搜索栏,让用户决定形状的大小。

但是...

由于这是一个流程图应用,用户应该能够删除以前放置的形状,撤消,重做...等。我不知道如何实现此功能。

最重要的是,用户可能想要绘制一个非常漫长而复杂的流程图。在这种情况下,我必须扩展表面(自定义布局?)并让用户通过捏合放大和缩小。我也不知道如何实现它。

是否有任何图书馆/框架会有所帮助?或者我可以在没有任何额外库的情况下实现这些功请把我推向正确的方向。

1 个答案:

答案 0 :(得分:0)

  

撤消,重做......

如果您已经开发了,或者您有任何想法,那就是" save"在您的应用程序中创建的数据,然后它将更容易。 在临时备份文件或内存中(使用建议的结构)以及添加它们的顺序存储用户的最后几个形状(您决定了多少)的数据。与流程图形状相关的数据很少(节点,大小,形状类型,内容,颜色),这使得它甚至可行。

接下来,当需要撤消或重做时,将数据传递给绘图过程,否则将正常使用用户的输入。 我在这里通过简单的c ++解释:

struct shape {
   int* node[];     //my sample structure for a shape
   string data;
};
struct shape shape1 = { myNode, "AbraKaDabra"}; //my sample data for a shape

//我们可以存储整个结构形状实例列表 LISTS尤其是, // 因为它们完全符合形状链接的目的 //现在可以将结构中的数据传递给绘图函数。

实施部分取决于你。