gpt4 book ai didi

java - ClientBundle 不加载 ImageResource

转载 作者:行者123 更新时间:2023-12-01 05:42:32 26 4
gpt4 key购买 nike

我尝试使用 ClientBundle 实现将我的图像管理到一个大文件并最小化 HTTP 请求。

我放入了 gwt.xml

生成ClientBundle

公共(public)接口(interface)ResourceBundle扩展了ClientBundle {

public static final ResourceBundle INSTANCE = GWT.create(ResourceBundle.class);

@Source("tiles/smiley.png")
ImageResource smiley();

}

将找到图像,没有错误。

这是代码

@覆盖 公共(public)无效 onModuleLoad() {

    CLogger.log("Start Engine");

int width = 800;
int height = 600;

Canvas canvas = Canvas.createIfSupported();
canvas.setWidth(width + "px");
canvas.setHeight(height + "px");
canvas.setCoordinateSpaceWidth(width);
canvas.setCoordinateSpaceHeight(height);
Context2d c = canvas.getContext2d();

Image img = new Image(ResourceBundle.INSTANCE.smiley());
img.addLoadHandler(new LoadHandler() {

@Override
public void onLoad(LoadEvent event) {
CLogger.log(event.getSource() + " loaded");
}
});
CLogger.log("Visible: " + img.isVisible());

c.drawImage((ImageElement) new Image(ResourceBundle.INSTANCE.smiley()).getElement().cast(), 0, 0);

RootPanel.get().add(canvas);

}

我创建了一个简单的 Canvas 并将尺寸设置为 800x600。我创建一个新的 Context2D 对象来在 Context 处绘制图像并将 Canvas 添加到 RootPanel。

日志显示:

[20:10:21.676] - 启动引擎[20:10:21.851] - 可见:true[20:10:21.853]-http://127.0.0.1:8888/engine/7D39451825E9952050F44A6B8E2E15F3.cache.png

图像存在于记录的 URL 下,因此一切看起来都很好。但图像不会被绘制,或者它会绘制但不显示。

有人有想法吗?

我认为 ClientBundle 加载图像作为后端的开始。那么,如果我得到一个实例,每个图像/CSS 和其他内容都会被加载吗?

问候马库斯

最佳答案

不保证图像内容同步加载。根据浏览器的功能和图像数据的大小,资源可能会存储为独立文件,这似乎就是您所描述的情况(即 cache.png)。这样的公式有什么区别吗?

final Image img = new Image(ResourceBundle.INSTANCE.smiley());
img.addLoadHandler(new LoadHandler() {
public void onLoad(LoadEvent e) {
c.drawImage((ImageElement) img.getElement());
}
}
RootPanel.get().add(img);

关于java - ClientBundle 不加载 ImageResource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6737380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com