用户svg图像在GWT ClientBundle(ImageBundle)

mxl*_*lse 3 java gwt svg clientbundle

我通常使用GWT ClientBundle来管理我的应用程序中的图像

@Source("icons/info.png")
ImageResource info();
Run Code Online (Sandbox Code Playgroud)

不,我想切换到.svg图形,但我没有找到像SVGResource之类的ClientBundle中使用svg的方法.我知道GWT支持svg,并且有可能在GWT中插入这些图形,但我想利用ClientBundle的优点+ svg的优点.有人已经解决了这个问题吗?

Tho*_*yer 13

ImageResource 对于GWT编译器可以以某种方式优化的光栅图像,您可以查询它们的大小.

对于像SVG这样的矢量图像,您可以简单地使用DataResource@MimeType("image/svg+xml")注释的矢量图像.

@Source("icons/info.svg")
@MimeType("image/svg+xml")
DataResource info();
Run Code Online (Sandbox Code Playgroud)

请注意,您不能@sprite在a中使用a CssResource,但是您可以获取要在其中使用的资源的URL,例如,background-image使用@url.
您也无法将资源传递给Image窗口小部件,但是您可以将其传递给它getSafeUri().


如果您想要SVG内容而不是将其用作图像URL,那么您可以使用TextResource.您必须将其作为setInnerHTML元素或setHTML窗口小部件传递给浏览器进行解析.