2011-06-16 55 views
2

我有一个大量使用java.awt.Graphics2d的java库。在GWT中接口java.awt.Graphics2D和Html5 Canvas上下文是否可行?

我想通过使用gwt将我的库移植到html5 canvas。

所以我打算写一个接口(或只是一类),说common.Graphics2d, 适配器类,说com.test.awt.Graphics2d,实现common.Graphics2d并使用java.awt.Graphics2D中

和另一个适配器类com.test.gwt.Graphics2d实现common.Graphics2d并使用com.google.gwt.canvas.dom.client.Context2d。

然后我将用common.Graphics2d替换所有的java.awt.Graphics2d。 所以在那之后,我的库将同时在gwt和java上工作。

这里的问题是实现graphics2d方法,并通过canvas context 2d进行配置。用canvas实现相同的功能是否可行?

回答

1

我做了类似的事情。我有一个接口,它代表一个接口的视图和两个实现。一个用于Android的使用其android.graphics类和第二个GWT使用com.google.gwt.canvas.client.Canvas的实现。

GWT画布的东西似乎相当全功能给我。您可以绘制形状,显示文本和图像,移动,旋转,缩放...

1

它可能取决于您使用的函数(例如颜色渐变可能不容易)。对于基本的绘图功能,你真正需要实现的方法数量非常少。

您可以从我的jvect-clipboard包(例如sourceforge)中查看(并重用)类。基本上,所有的几何方法都可以使用一般的路径绘制命令,而且您只需存储颜色等。你会发现代码非常简单,特别是对于SVG(尽管它没有涵盖所有的可能性,特别是渐变),这个代码非常简单。