我可以序列化画布上绘制的路径,以便在重新启动应用程序时重新绘制路径吗



我有一个应用程序,它使用画布来绘制用户所做的涂鸦。我在一个外部文件中序列化了路径,并将其保存在sd卡中。当用户再次启动应用程序时,单击(ReDraw)按钮,我希望在画布上重新绘制保存的路径。我无法重新绘制路径。在调试和检查文件时,我正在从文件中检索路径。但我不知道为什么道路没有被重新绘制。请帮忙。

我从这里的另一个问题我做了一些修改,对我来说效果很好

为了理解,我们可以认为我们只需要存储一张动作和点的地图。我们需要path.moveTo(int x,int y),path.lineTo(int y,int x),path.quadTo(int x1,int y1,int x2,int y2)和path.reset()方法
本例中的操作为:lineTo、moveTo、quadTo、reset和作为对应点的点

我取了两个数组1表示x,另一个表示y。对于quadTo(x1,y1,x2,y2),我们需要两个点,对于重置,我们不需要点,对于其他,我们需要一个点(x,y)
我们可以认为操作是键,{arrayX[],arrayY[]}是操作的值。对于lineTo和moveTo这样的操作,arrayX[]和arrayY[]的大小为1,对于quadTo,大小为2,对于reset,大小为0(或者我们可以将两个数组都设为null),因为在这种情况下,我们不需要点。在从与Action键对应的数组中检索点的值时,我们只需要小心。当动作是lineTo时,我们只需在画布上绘制路径。

最新更新