对等协作绘图

时间:2014-04-05 10:17:52

标签: android canvas drawing p2p alljoyn

我正在使用像alljoyn framework这样的chalkboard在Android上开发一个点对点协作绘图应用。

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

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

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

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

感谢...

1 个答案:

答案 0 :(得分:1)

Canvas实际上是一个位图。

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

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

这会在序列化,传输和反序列化方面造成瓶颈。工作太慢了。

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

如果用户#1从[20,20]到[100,100]绘制一条线,只需序列化该线条并将其与所有用户共享。

序列化可能看起来像这样:" L 20,20 100,100"。

如果您想要一个高效的序列化结构,请查看SVG执行路径数据的方式 - 非常有效地传输给许多用户。

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