2014-02-24 102 views
0

我努力在GWT的畫布上繪製一個簡單的圖像。下面是我的程序:如何在GWT中將圖像繪製到畫布上?

public class BlahTest implements EntryPoint { 

    private final Images images = GWT.create(Images.class); 

    public void onModuleLoad() { 
     Canvas canvas = Canvas.createIfSupported(); 
     Context2d ctx = canvas.getContext2d(); 
     ctx.setFillStyle("blue"); 
     ctx.fillRect(10, 10, 30, 30); 
     Image img = new Image(images.pencil()); 
     ImageElement imgEl = ImageElement.as(img.getElement()); 
     canvas.getContext2d().drawImage(imgEl, 50, 50); 

     RootLayoutPanel rp = RootLayoutPanel.get(); 
     rp.add(canvas); 

    } 
} 

的圖像界面看起來像這樣,與Pencil.png在同一文件夾:

public interface Images extends ClientBundle { 
    @Source("Pencil.png") 
    ImageResource pencil(); 

} 

的圖像根本就沒有繪製。我也試着等待圖像加載img.addLoadHandler()但仍然沒有繪製....

有什麼建議嗎?

編輯:由於亞希指出,這似乎是由於它已被固定在GWT

的2.6版本
+0

也許這個問題https://code.google.com/p/google-web-toolkit/issues/detail?id=7403。 –

+0

Aki你是對的 - 我下載了新版本的GWT(2.6),現在它工作的很好。謝謝! – Mark

回答

0

你幾乎沒有一個bug。只是將其替換爲

圖像img = new Image(images.pencil());

圖像IMG =新的圖像(images.pencil()getSafeUri());

+0

這對我來說在2.4和2.5下工作 – outellou