如何在GWT中将图像绘制到画布?

时间:2014-02-24 22:33:28

标签: 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()等待图像加载,但仍然没有绘制....

有什么建议吗?

编辑:正如Aki所指出的,这似乎是由于GWT 2.6版本中修复的错误

1 个答案:

答案 0 :(得分:0)

你几乎就在那里。只需替换这个

  

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

  

Image img = new Image(images.pencil()。getSafeUri());