3

我的问题真的很简单。但希望我能有一个明确的答案。我们可以通过多种方式创建 GWT Image。

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

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

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

我的问题是:这三种使用 ImageResouce 创建新图像的方法有什么区别。第一次加载哪个最好或更快?

谢谢

4

1 回答 1

4

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

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

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

于 2012-07-26T17:14:10.007 回答