AndroidManifest的screenOrientation詳解

作用: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)這篇帖子,作者把幾個問題闡述的淋漓盡致,輪不著我說什么了,于是收藏之。

更多關(guān)于AndroidManifest介紹(以上文字摘自以下文章)

AndroidManifest.xml 最全詳解
AndroidManifest.xml 最全詳解一一

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容