在 GWT 中缩放图像
2022-09-02 00:31:06
我看到了这个博客条目,它通过使用GWT DataResource而不是ImageResource解决了这个问题。事实证明,如果您按如下方式使用它,则相同的技术实际上也适用于ImageResource:
Image image = new Image(myImageResource.getURL());
image.setPixelSize(getLength(), getHeight());
要保持宽高比,请按如下方式计算:
Image image = new Image(myImageResource.getURL());
image.setPixelSize(newWidth, myImageResource.getHeight() * newWidth / myImageResource.getWidth());
从GWT 2.4开始,请使用(见此处):
Image image = new Image(myImageResource.getSafeUri());
image.setPixelSize(newWidth, myImageResource.getHeight() * newWidth / myImageResource.getWidth());
如果我们想在UIBinder中做同样的事情。然后从外部资源:
例如,我们有回报
@Source("images/logo.png")
ImageResource getLogo();
在 UiBinder 模板中声明元素:<ui:with>
<ui:with field='res' type='com.myapp.client.Resources'/>
及以下:
<g:Image url='{res.getLogo.getSafeUri.asString}' pixelSize="Width, Height" />
在较旧的 GWT 版本中:
<g:Image url='{res.getLogo.getURL}' pixelSize="Width, Height" />
但现在 - 已弃用。
请勿使用:
<g:Image resource='{res.getLogo}' pixelSize="Width, Height" />
因为它不会缩放图像