在GWT中连接java.awt.Graphics2D和Html5 Canvas上下文是否可行?

时间:2011-06-16 17:57:21

标签: html5 gwt canvas awt graphics2d

我有一个大量使用java.awt.Graphics2d的java库。

我想使用gwt将我的库移植到html5画布。

所以我打算编写一个接口(或者只是一个类),比如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实现相同的功能是否可行?

2 个答案:

答案 0 :(得分:1)

我做了类似的事情。我有一个代表aview的接口和所述接口的两个实现。一个用于Android,使用android.graphics类,另一个用于GWT,使用com.google.gwt.canvas.client.Canvas

GWT画布的东西对我来说似乎非常全面。您可以绘制形状,显示文本和图像,移动,旋转,缩放......

答案 1 :(得分:1)

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

例如,您可以从我的jvect-clipboard包中查看(并重用)类(在sourceforge上)。基本上,所有几何方法都可以使用通用路径绘图命令,并且您可以使用存储颜色等。

看看SVG或WMF输出的实现,你会看到代码非常简单,特别是对于SVG(尽管它没有涵盖所有可能性,特别是渐变)。