/**
* 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);
}
这是我的代码。我想将图像绘制到 Canvas 上。
如果最后一行,这有效:
RootPanel.get("canvas").add(img);
没有注释掉。
但是随着注释的行,似乎图像不会被加载左右。有任何想法吗?
最佳答案
必须将图像小部件添加到页面以触发图像加载。让它不可见:
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);
}
关于GWT Canvas2D 绘制图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10000921/