gpt4 book ai didi

android - 我可以序列化在 Canvas 上绘制的路径以在重新启动应用程序时重新绘制路径吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:01:42 25 4
gpt4 key购买 nike

我有一个使用 Canvas 绘制用户涂鸦的应用程序。我已经将外部文件中的路径序列化并保存在 SD 卡中。当用户再次启动应用程序然后单击(重新绘制)按钮时,我希望在 Canvas 上重新绘制保存的路径。我无法重绘路径。我在调试和检查时从文件中检索路径。但是我不知道为什么没有重新绘制路径。请帮忙。

最佳答案

我引用了 another question here我做了一些修改,它对我来说效果很好。

要理解我们可以认为我们只需要存储一个 Action 和点的映射。我们需要 path.moveTo(int x, int y), path.lineTo(int x, int y),用于涂鸦的 path.quadTo(int x1, int y1, int x2, int y2) 和 path.reset() 方法。
这种情况下的操作是:lineTo、moveTo、quadTo、reset 和 points 是对应的点。

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

关于android - 我可以序列化在 Canvas 上绘制的路径以在重新启动应用程序时重新绘制路径吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8832931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com