Изменение размера Виджета Изображения в GWT изменяет размер элемента изображения, но не повторно масштабирует изображение на экране. Поэтому следующее не будет работать:
Image image = new Image(myImageResource);
image.setHeight(newHeight);
image.setWidth(newWidth);
image.setPixelSize(newWidth, newHeight);
Это вызвано тем, что GWT реализует свой виджет Изображения путем установки background-image
из HTML
элемент как изображение, с помощью CSS.
Как каждый заставляет действительный образ изменять размер?
Я увидел эту запись в блоге, которая решает проблему, используя 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());
Попробуйте виджет загрузчика изображений http://code.google.com/p/gwt-image-loader {{1} } Класс FitImage предоставляет то, что вы ищете.
PS: примените также исправления от проблем, так как есть несколько мелких ошибок, которые я исправил