5

アプリケーションにトグル ボタンがあります。デフォルト設定、画面の自動回転 ([設定] > [ディスプレイ] > [画面の自動回転]) をプログラムで変更または制御したい。誰もこれを行う方法を知っていますか?

4

4 に答える 4

11

アクティビティでこれを試しましたか?

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

//This is the default value
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

その後、これを使用して自動方向を無効にすることができます。

public static void setAutoOrientationEnabled(ContentResolver resolver, boolean enabled)
{
  Settings.System.putInt(resolver, Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0);
}

ドキュメンテーション

于 2012-03-15T11:59:02.550 に答える
7

あなたはこれを使うことができます:

android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.USER ROTATION,user_rotation);

ローテーションポリシーの場合

user_rotation 0 -> ROTATION_0
user_rotation 1 -> ROTATION_90
user_rotation 2 -> ROTATION_180
user_rotation 3 -> ROTATION_270

詳細については、 http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATIONを参照してください。

また、menizest.xml設定

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
于 2012-03-15T12:47:05.850 に答える
3

マニフェスト ファイルでデフォルトのローテーション設定を設定します。

<activity android:name=".MainTabActivity" android:screenOrientation="portrait">
</activity>

プログラムで方向を変更するには、Activity.setRequestedOrientation()を呼び出す必要があります。

于 2012-03-15T12:31:40.317 に答える
0
a1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        startActivity(new Intent(getApplicationContext(), MainActivity.class));
        android.provider.Settings.System.putInt(getContentResolver(),
                android.provider.Settings.System.USER_ROTATION,0);
    }
});
a2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        startActivity(new Intent(getApplicationContext(), MainActivity.class));
        android.provider.Settings.System.putInt(getContentResolver(),
                android.provider.Settings.System.USER_ROTATION,90);
    }
});
于 2014-02-17T13:44:54.237 に答える