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