Android以编程方式设置多个方向

时间:2016-10-28 12:53:38

标签: android orientation programmatically

我尝试以编程方式设置多个方向。例如,我想要屏幕方向可以是纵向,反向纵向和反向横向。

我尝试使用此代码,但似乎它不起作用。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE);

修改

setRequestedOrientation方法适用于最新方向。我只是试图找到一种方法来设置两个方向。

1 个答案:

答案 0 :(得分:3)

您应该根据配置更改设置请求的方向

public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    } else if...
}

如果您想同时支持肖像和反面肖像,请使用SCREEN_ORIENTATION_SENSOR_PORTRAIT(更多info)。 另一个有用的link

<强>编辑:

我没有看到一个案例,在新的配置例如,例如,您需要请求横向和纵向风景,但您可以尝试使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT | ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);