0

アクティビティを開いたときに、そのアクティビティを開いたときの向きのままにしておきたいです。
たとえば、PORTRAIT モードで開いた場合、ユーザーは横向きに変更できず、横向きで開いた場合、ユーザーは縦向きに変更できません。(ビデオプレーヤーにはこれが必要です)

これを実現するために、現在の画面の向きを取得し、次のように設定します。

int orientation = getResources().getConfiguration().orientation;
setRequestedOrientation(orientation);

アクティビティをポートレート モードで開き、電話を回転させてランドスケープに切り替えようとすると、変更されません。これは予想どおりです。問題は、アクティビティがランドスケープで開かれ、ポートレートに回転しようとすると、回転することです。

なぜこれが起こるのか理解できません。

コードは、setContentView() の上の onCreate() に表示されます。

4

2 に答える 2

2

問題は、異なる定数getResources().getConfiguration().orientationで動作することです。setRequestedOrientation(orientation);両方のドキュメントを読んで、それらの間のマッピングを試すことができます。

于 2012-06-11T16:28:15.367 に答える
1

これを試してください:

@Override
    public void onResume() {
        super.onResume();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

    }
于 2012-06-11T16:28:43.247 に答える