作用:screenOrientation用于控制Activity啟動時方向
相關(guān)值:
| 值 | 釋義 |
|---|---|
unspecified |
默認(rèn)值。由系統(tǒng)選擇方向。在不同設(shè)備上,系統(tǒng)使用的政策以及基于政策在特定上下文所做的選擇可能有所差異。 |
behind |
與 Activity 棧中緊接著它的 Activity的方向相同。 |
landscape |
橫向方向(顯示的寬度大于高度)。 |
portrait |
縱向方向(顯示的高度大于寬度)。 |
sensor |
方向由設(shè)備方向傳感器決定。顯示方向取決于用戶如何手持設(shè)備,它會在用戶旋轉(zhuǎn)設(shè)備時發(fā)生變化。 但一些設(shè)備默認(rèn)情況下不會旋轉(zhuǎn)到所有四種可能的方向。要允許全部四種方向,請使用 fullSensor。 |
nosensor |
決定方向時不考慮物理方向傳感器。傳感器會被忽略,因此顯示不會隨用戶對設(shè)備的移動而旋轉(zhuǎn)。 除了這個區(qū)別,系統(tǒng)在選擇方向時使用的政策與unspecified設(shè)置相同。 |
user |
用戶當(dāng)前的首選方向。 |
fullSensor |
方向由 4 種方向中任一方向的設(shè)備方向傳感器決定。這與 sensor 類似,不同的是它允許所有 4 種可能的屏幕方向,無論設(shè)備正常情況下采用什么方向(例如,一些設(shè)備正常情況下不使用反向縱向或反向橫向,但它支持這些方向)。 API 9 中的新增配置。 |
reverseLandscape |
與正常橫向方向相反的橫向方向。API 9 中的新增配置。 |
reversePortrait |
與正??v向方向相反的縱向方向。API 9 中的新增配置。 |
sensorLandscape |
橫向方向,但根據(jù)設(shè)備傳感器,可以是正?;蚍聪虻臋M向方向。API 9 中的新增配置。 |
sensorPortrait |
縱向方向,但根據(jù)設(shè)備傳感器,可以是正?;蚍聪虻目v向方向。API 9 中的新增配置。 |
userLandscape |
橫向方向,但根據(jù)設(shè)備傳感器和用戶的傳感器首選項,可以是正?;蚍聪虻臋M向方向。 如果用戶鎖定了基于傳感器的旋轉(zhuǎn),其行為與 landscape 相同,否則,其行為與 sensorLandscape 相同。API 18 中的新增配置。 |
userPortrait |
縱向方向,但根據(jù)設(shè)備傳感器和用戶的傳感器首選項,可以是正?;蚍聪虻目v向方向。 如果用戶鎖定了基于傳感器的旋轉(zhuǎn),其行為與 portrait 相同,否則,其行為與 sensorPortrait 相同。API 18 中的新增配置。 |
fullUser |
如果用戶鎖定了基于傳感器的旋轉(zhuǎn),其行為與 user 相同,否則,其行為與 fullSensor 相同,允許所有 4 種可能的屏幕方向。 API 18 中的新增配置。 |
locked |
將方向鎖定在其當(dāng)前的任意旋轉(zhuǎn)方向。API 18 中的新增配置。 |
注意
遇到一個奇葩的問題,我在使用onConfigChanged攔截屏幕的橫豎屏旋轉(zhuǎn)時,發(fā)現(xiàn)直接進行180度的橫屏/豎屏轉(zhuǎn)換居然沒有反應(yīng)!查找原因發(fā)現(xiàn)僅對landscape或者portrait狀態(tài)有用,而同屬于landscape的reverse_landscape并不受影響。那么問題怎么破呢?剛開始想到了用Sensor的狀態(tài)來監(jiān)聽當(dāng)前屏幕狀態(tài),可是發(fā)現(xiàn)針對加速度傳感器或者陀螺儀的參數(shù)來進行判斷太麻煩,這樣效率一點不高,無意Google中發(fā)現(xiàn)這篇帖子,作者把幾個問題闡述的淋漓盡致,輪不著我說什么了,于是收藏之。