0

私のアプリでは、各画面に背景画像があります。縦向きと横向きに同じ画像を使用したいのですが、見栄えを良くするには、横向きのときに画像を90度回転させて、画面いっぱいに引き伸ばされないようにする必要があります。

私の解決策は、drawable-port に入れたポートレート用と drawable-land に入れたランドスケープ用の 2 つの画像のコピーを作成することでした。多くの異なる背景があるため、apk に画像の 2 番目のコピーを埋め込むだけで、apk のサイズが必要以上に大きくなります。

できれば純粋な XML で、回転した画像をサポートするにはどうすればよいですか。コードでは、onStart の前に画像を回転させるだけで機能すると思いますが、可能であれば XML に保持したいと思います。

助けてくれてありがとう!

4

1 に答える 1

0

XML でこれを行う方法が思い浮かびません。しかし、背景を適用するビュー (RelativeLayout など) から継承したカスタム クラスを作成した場合は、次のようなことができます。

@Override
protected void onSizeChanged(int newWidth, int newHeight, int oldWidth, int oldHeight) {
    if (newWidth > newHeight) {    // landscape
        // rotate the background
    }
}

このように、回転を 1 回実装するだけで、すべてのビューが背景を自動回転します。

于 2011-07-31T05:07:45.213 に答える