使用Tabris在屏幕旋转期间缩放背景图像

问题描述:

我在顶层页面中有以下服务器端代码,为应用程序中的所有页面设置背景图像。使用Tabris在屏幕旋转期间缩放背景图像

@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。

您可以添加一个调整大小监听到你的组合是这样的:

comp.addListener(SWT.Resize, listenerComp); 

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

刚刚得到确认您缓存您比例缩小图像,这样你就不能扩展和每转创造新的图像。