使用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) {
...
}
};
刚刚得到确认您缓存您比例缩小图像,这样你就不能扩展和每转创造新的图像。