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
}

上記のコードは、すべてのページの背景を正しく設定し、さまざまな画面サイズに合わせて画像をスケーリングします。しかし、画面を回転すると、新しい画面の寸法に合わせて画像が拡大縮小されません。この問題に対処するには?Tabris1.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 に答える