正如您可以看到Android的Youtube应用程序,即使在设置中禁用选项“自动旋转屏幕”,也可以将屏幕从纵向旋转到横向。我怎么能这样呢?谢谢所有人!
答案 0 :(得分:2)
使用 - ActivityInfo.SCREEN_ORIENTATION_SENSOR
如果您想要旋转屏幕而不考虑用户的选择,请使用ActivityInfo.SCREEN_ORIENTATION_USER
。这只会在屏幕打开时旋转。
答案 1 :(得分:0)
您也可以使用
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);
}
答案 2 :(得分:0)
如此处http://developer.android.com/guide/topics/sensors/sensors_overview.html所示,您可以注册自己的传感器(在这种情况下为TYPE_ACCELEROMETER
),然后聆听它的事件。
当您计算手机方向已更改时,您应该以编程方式更改布局方向。
答案 3 :(得分:0)
在你想要能够旋转屏幕的那个活动的onCreate中使用它:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
它不会影响其他活动或整个设备设置。
我试过了。有用。
答案 4 :(得分:0)
使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR),它将忽略自动旋转选项,只需在旋转设备时旋转。