GWT使用ImageResource创建Image

时间:2012-07-26 16:57:41

标签: java image gwt gwt-2.4 clientresource

我的问题非常简单并且很好。但希望我能得到一个明确的答案。 我们可以通过多种方式创建GWT图像。

Image image = new Image ( (ImageResource)imageRes);

Image image = new Image ( (ImageResource)imageRes.getSafeUri() );

Image image = new Image ();
image.setUrl((ImageResource)imageRes.getSafeUri().asString() );

我的问题是:使用ImageResouce创建新图像的这3种方法有何不同。第一次加载哪一个最好或更快?

由于

1 个答案:

答案 0 :(得分:4)

首先,你不应该使用最后两个。

ImageResource技术上代表“sprited”图像中的区域:它具有精灵的URL和该图像上区域的坐标。在许多浏览器中,对于大多数图像,URL实际上是data: URL,区域将代表整个图像。这可以使用@ImageOptions(preventInlining=true)在每个图片上进行控制,也可以在set-property上使用gwt.xml进行全局控制。换句话说,您的代码不应该依赖它,并且应该始终将ImageResource视为sprited图像中的区域。
仅供参考,实际使用sprited图像默认情况的情况适用于不支持data: URL的IE6 / 7,以及太大而不能容纳{{1}的图像URL(所有浏览器)。

然而,这正是您在最后两种情况下所做的事情:仅使用data:的URL,就好像它不是(可能)是一个sprited图像。