/**
* 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);
}
这是我的代码。我想将图像绘制到画布上。 这适用于最后一行:
RootPanel.get( “画布”)添加(IMG);
未被注释掉。
但随着该行评论,似乎图像不会被加载。有什么想法吗?
答案 0 :(得分: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);
}
答案 1 :(得分:3)
您是否已将图像放在WEB-INF文件夹中?这就是GWT从中加载图像的地方。通常建议创建一个“images”文件夹,以便您可以使用“images / face.png”加载它。
答案 2 :(得分:0)