我有一个大量使用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实现相同的功能是否可行?
答案 0 :(得分:1)
我做了类似的事情。我有一个代表aview的接口和所述接口的两个实现。一个用于Android,使用android.graphics
类,另一个用于GWT,使用com.google.gwt.canvas.client.Canvas
。
GWT画布的东西对我来说似乎非常全面。您可以绘制形状,显示文本和图像,移动,旋转,缩放......
答案 1 :(得分:1)
这可能取决于您使用的功能(例如颜色渐变可能并不容易)。对于基本绘图功能,您真正需要实现的方法数量非常少。
例如,您可以从我的jvect-clipboard包中查看(并重用)类(在sourceforge上)。基本上,所有几何方法都可以使用通用路径绘图命令,并且您可以使用存储颜色等。
看看SVG或WMF输出的实现,你会看到代码非常简单,特别是对于SVG(尽管它没有涵盖所有可能性,特别是渐变)。