GWT Canvas2D绘制图像

Bas*_*der 4 gwt canvas

/**
 * This is the entry point method.
 */
public void onModuleLoad() {
    Canvas canvas = Canvas.createIfSupported();
    final Context2d context2d = canvas.getContext2d();

    RootPanel.get("canvas").add(canvas);
    Image img = new Image("face.png");
    final ImageElement face = ImageElement.as(img.getElement());
    img.addLoadHandler(new LoadHandler() {

        @Override
        public void onLoad(LoadEvent event) {
            context2d.drawImage(face, 0, 0);
        }
    });
    //RootPanel.get("canvas").add(img);
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我想将图像绘制到画布上.如果最后一行有效:

RootPanel.get( "画布")添加(IMG).

没有注释掉.

但随着该线评论,似乎图像不会被加载或等等.有任何想法吗?

小智 5

必须将图像小部件添加到页面以触发图像加载.只是让它看不见:

public void onModuleLoad() {    
    Canvas canvas = Canvas.createIfSupported();
    final Context2d context2d = canvas.getContext2d();

    RootPanel.get().add(canvas);
    Image img = new Image("face.png");
    final ImageElement face = ImageElement.as(img.getElement());
    img.addLoadHandler(new LoadHandler() {

        @Override
        public void onLoad(LoadEvent event) {
            context2d.drawImage(face, 0, 0);
        }
    });

    img.setVisible(false);
    RootPanel.get().add(img);
}        
Run Code Online (Sandbox Code Playgroud)