1

我在顶级页面中有以下服务器端代码来为应用程序中的所有页面设置背景图像。

@Override
public void createContent(final Composite parent, final PageData oData) {
    Image bg = ResourceManager.getImage( LnfSettings.IMAGE_PAGE_BACKGROUND );

    Composite comp = parent.getParent();
    int width = comp.getDisplay().getClientArea().width;
    int height = comp.getDisplay().getClientArea().height;

    comp.setBackgroundImage( new Image( bg.getDevice(), bg.getImageData().scaledTo(
                    width, height ) ) );

    ... more code here to create layout and contents
}

上面的代码正确设置了所有页面的背景,并缩放了图像以适应不同的屏幕尺寸。但是如果我旋转屏幕,图像不会根据新的屏幕尺寸进行缩放。如何处理这个问题?我正在使用 Tabris 1.4。

4

1 回答 1

1

您可以像这样向您的复合材料添加一个调整大小的侦听器:

comp.addListener(SWT.Resize, listenerComp);

Listener listenerComp = new Listener() {
    @Override
    public void handleEvent(Event event) {
        ...
    }
};

只需确保缓存缩放的图像,这样就不会在每次旋转时缩放和创建新图像。

于 2014-09-12T08:46:10.287 回答