3

私のアクティビティの向きは横向きに固定されています。GLsurface ビューでこのアクティビティの 3 つの異なるレイアウトをインフレートしています。ユーザーの操作に応じて、一度に表示されるのはそのうちの 1 つだけです。このレイアウトの 1 つがビデオ ビューです。ビデオの縦再生と横再生の両方をサポートしたいと思います。ただし、他のすべてのビューでは、横向きに固定する必要があります。どうすればこれを達成できますか。

お時間をいただきありがとうございます。

4

2 に答える 2

1

AndroidManifest.xml アクティビティ宣言で削除

android:orientation

タグ付けして追加

android:configChanges="keyboardHidden|orientation"

アクティビティで以下の関数をオーバーライドします

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);    //To change body of overridden methods use File | Settings | File Templates.
    if (!isVideoViewSet)//change orientation to portrait other Views, skip for Video View
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}

ここでいくつかのフラグ (上記のコード スニペットのisVideoViewSet ) を使用して、どのビューが設定されているかを確認し、それに応じてアクティビティの向きを設定できます。

于 2013-04-17T08:50:28.240 に答える
0

まず、同じアクティビティで 3 つの異なるビューを膨らませる代わりに、1 つの基本アクティビティに加えて 3 つの異なるアクティビティを使用することをお勧めします。

編集:冗長になるため、LinearLayoutコードを削除します。向きを変更してイベントで修正するだけで、個々のビューを開くことができます。

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
于 2013-04-17T07:10:53.670 に答える