2016-10-28 58 views
1

我嘗試以編程方式設置多個方向。例如,我想要屏幕方向可以是縱向,反向縱向和反向橫向。Android以編程方式設置多個方向

我嘗試使用此代碼,但它似乎不起作用。

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

編輯

setRequestedOrientation方法適用於最新的定位。我只是試圖找到一種方法來設置兩個方向。

+0

解釋更多。當你使用多個方向時? –

+0

我正在爲我的公司開發圖書館。 –

回答

2

你應該設置要求的基礎上配置方向改變

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);

+0

我知道如果我想設置反向和正常人像,我可以使用傳感器人像,但是如果我想使用傳感器人像和普通風景?那麼,如果我希望我的活動可以將方向改變爲0度,90度和180度? –

+0

再一次,我不確定爲什麼要這樣做,但是您可以隨時嘗試按位或運算。 – Drez

+0

我只需要這個。例如,我希望我的活動可以定向到0,90和180度。按位還是沒有工作。 –