2011-06-16 54 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(儘管它沒有涵蓋所有的可能性,特別是漸變),這個代碼非常簡單。