0

我正在使用alljoyn 框架(如chalkboard )在 android 上开发一个点对点协作绘图应用程序。

我能够实现同行之间的协作聊天。现在我想实现画布共享,在单个画布中每个人都可以实时绘制。

我如何从画布开始,它的数据结构是什么,是否需要处理任何特定的图像对象,是否需要使用 json,是否必须将像素值存储在二维数组中。

我只需要一个带有白色背景和黑色作为绘图部分的黑白屏幕。

我只是想知道它背后的方法。任何参考都会有所帮助。

谢谢...

4

1 回答 1

1

画布实际上是一个位图。

您可以使用绘图命令在位图上添加/更改像素。

要进行协作绘图,您不会在每次更改时在所有用户之间共享像素值。

这将在序列化、传输和反序列化方面造成瓶颈。工作起来太慢了。

相反,每次更改都在所有用户之间共享最新的绘图命令。

如果用户#1 从 [20,20] 到 [100,100] 画了一条线,只需序列化画线的命令并与所有用户共享。

也许序列化看起来像这样:“L 20,20 100,100”。

如果您想要一个高效的序列化结构,请查看 SVG 处理路径数据的方式——对于向许多用户传输非常有效。

所有其他用户将监听传入的命令。收到后,他们将反序列化用户#1 的行并自动将其绘制在自己的画布上。

于 2014-04-05T16:18:01.493 回答