我的应用程序中有一个切换按钮。我想以编程方式更改或控制默认设置,自动旋转屏幕(设置>显示>自动旋转屏幕)。有人知道怎么做这个吗?
问问题
18442 次
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。
还 menifiest.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 回答