私のアクティビティの向きは横向きに固定されています。GLsurface ビューでこのアクティビティの 3 つの異なるレイアウトをインフレートしています。ユーザーの操作に応じて、一度に表示されるのはそのうちの 1 つだけです。このレイアウトの 1 つがビデオ ビューです。ビデオの縦再生と横再生の両方をサポートしたいと思います。ただし、他のすべてのビューでは、横向きに固定する必要があります。どうすればこれを達成できますか。
お時間をいただきありがとうございます。
私のアクティビティの向きは横向きに固定されています。GLsurface ビューでこのアクティビティの 3 つの異なるレイアウトをインフレートしています。ユーザーの操作に応じて、一度に表示されるのはそのうちの 1 つだけです。このレイアウトの 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 ) を使用して、どのビューが設定されているかを確認し、それに応じてアクティビティの向きを設定できます。
まず、同じアクティビティで 3 つの異なるビューを膨らませる代わりに、1 つの基本アクティビティに加えて 3 つの異なるアクティビティを使用することをお勧めします。
編集:冗長になるため、LinearLayoutコードを削除します。向きを変更してイベントで修正するだけで、個々のビューを開くことができます。
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);