1

の場合screenOrientation="portrait"、次のようになります。

ここに画像の説明を入力

の場合screenOrientation="landscape"、次のようになります。

ここに画像の説明を入力

中央のビューのみが回転し、他のビューは変更されていないことがわかります。

それはアンドロイドで可能ですか、そうであればそれを実装する方法は?

4

2 に答える 2

1

参照: http://developer.android.com/guide/practices/screens_support.html

オリエンテーションに関する部分

例えば:

res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation

res/layout-xlarge-port/my_layout.xml // layout for extra large in portrait orientation

またはコードで。レイアウトを変更するためのコードを自分で入力します。

アクティビティ:

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
    }
  }

マニフェスト:

<activity android:name=".MyActivity"
          android:configChanges="orientation"/>
于 2012-09-18T06:28:16.760 に答える
0

あなたの要件は、さまざまなレイアウトで正しい向きで画像を表示することであるため、代替リソースを提供するのではなく、画像を回転させることをお勧めします。つまり、すべてを回転させる必要があります (つまり、ボタン内のテキストを回転させる必要があります。他のコンポーネントについても同様です)。

向きの変化を検出し、イメージビューだけを回転させるだけで、少し手間が省けます。

次のようにアクティビティのマニフェストで指定することにより、向きの変更を制御できます。

 <activity android:name=".MyActivity"
      android:configChanges="orientation|screenSize"/>

その後、klaasvaak の提案に従って onConfigurationChanged(Configuration newConfig) メソッドをオーバーライドし、画像を回転させることができます。リンクをたどって、画像を回転する方法を確認できます。

于 2012-09-18T09:13:11.380 に答える