2

我有一个大量使用 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。

然后我将所有 java.awt.Graphics2d 替换为 common.Graphics2d。所以在那之后,我的库将在 gwt 和 java 上运行。

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

4

2 回答 2

1

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

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

例如查看 SVG 或 WMF 输出的实现,您会发现代码非常简单,尤其是 SVG(尽管它没有涵盖所有可能性,尤其是渐变)。

于 2011-10-05T18:03:42.630 回答
1

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

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

于 2011-08-18T06:30:25.140 回答