我通常使用 GWT ClientBundle 在我的应用程序中管理我的图像,就像这样
@Source("icons/info.png")
ImageResource info();
不,我想切换到 .svg 图形,但我没有找到在像 SVGResource 之类的 ClientBundle 中使用 svg 的方法。我知道 GWT 支持 svg,并且有可能在 GWT 中插入这些图形,但我想利用 ClientBundle 的优势 + svg 的优势。有人已经解决了这个问题吗?
我通常使用 GWT ClientBundle 在我的应用程序中管理我的图像,就像这样
@Source("icons/info.png")
ImageResource info();
不,我想切换到 .svg 图形,但我没有找到在像 SVGResource 之类的 ClientBundle 中使用 svg 的方法。我知道 GWT 支持 svg,并且有可能在 GWT 中插入这些图形,但我想利用 ClientBundle 的优势 + svg 的优势。有人已经解决了这个问题吗?
ImageResource
用于 GWT 编译器可以以一种或另一种方式优化的光栅图像,您可以查询它们的大小。
对于像 SVG 这样的矢量图像,您可以简单地使用DataResource
带有@MimeType("image/svg+xml")
注释的 a。
@Source("icons/info.svg")
@MimeType("image/svg+xml")
DataResource info();
请注意,您不能@sprite
在CssResource
then 中使用 a,但您可以获取要在其中使用的资源 URL,例如background-image
using @url
。
您也不能将资源传递给Image
小部件,但是您可以将其传递给getSafeUri()
.
如果您想要 SVG 内容而不是将其用作图像 URL,则可以使用TextResource
. 您必须将其作为setInnerHTML
元素或setHTML
小部件传递给浏览器才能对其进行解析。
有LIB-GWT-SVG。它支持最新的 GWT 版本(2.7.0),看起来很成熟。
他们实现了与 UIBinder 的 SVG 集成,并添加了SVGResource类,您可以像 ImageResource 一样捆绑
@Source(...)
SVGResource bundledResource;