2013-07-27 72 views
0

Jelly Bean 4.3(API 18)添加了一些新的screenOrientation值。Android screenOrientation API 18 - 「nosensor」vs「locked」,「unspecified」vs「user」vs「fullUser」

http://developer.android.com/reference/android/R.attr.html#screenOrientation

http://developer.android.com/reference/android/content/pm/ActivityInfo.html#SCREEN_ORIENTATION_BEHIND

我想第一:是否有 「方向」 和 「旋轉」 之間的區別嗎?還是僅僅使用不一致的措辭的文檔?

然後:

不明

沒有指定的優先級:讓系統決定最佳方向。這可以是以下活動選擇的方向,也可以是用戶的首選方向(如果此活動是任務的底部)。如果用戶通過設置明確關閉基於傳感器的方向,則基於傳感器的設備旋轉將被忽略。如果不是基於傳感器的默認方向將被考慮在內,並且方向將根據用戶如何旋轉設備而改變。對應於SCREEN_ORIENTATION_UNSPECIFIED。

用戶

使用用戶當前的首選手機方向。對應於SCREEN_ORIENTATION_USER。

fullUser(新)

尊重用戶的基於傳感器的旋轉的偏好,但如果啓用基於傳感器的旋轉,然後讓屏幕在所有4個可能的方向旋轉,不管什麼樣的設備,通常會做(對例如一些設備通常不會使用180度旋轉)。對應於SCREEN_ORIENTATION_FULL_USER。

有什麼區別?在目前的實踐中,我認爲setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)是告訴活動基於傳感器旋轉的方式,如果在系統範圍內啓用了旋轉。那麼fulluser與之不同?

同樣,

nosensor

始終忽略由方位傳感器確定方向:當所述用戶移動裝置的顯示將不轉動。對應於SCREEN_ORIENTATION_NOSENSOR。

鎖定(新)

屏幕被鎖定於其當前的旋轉,不管它是什麼。對應於SCREEN_ORIENTATION_LOCKED。

有什麼區別?

回答

2

「orientation」和「rotation」之間有區別嗎?或者是僅僅使用不一致的措辭的文檔 ?

即使你看到OrientationRotation同義詞(如大多數我認爲,包括我在內),其不同之處各自的定義。其中Orientation爲您提供了兩種選擇,Rotation爲您提供了四種選擇。額外的兩個選擇將用於什麼?這將取決於你。

假設你想出了一個便利的應用程序,其中包括鬧鐘,計算器,天氣預報器和貨幣換算。您可以爲其中的每一個指定不同的旋轉角度,並允許用戶通過旋轉設備在四個視圖之間導航。

另一個(虛構的)示例可以是基於旋轉角度顯示不同小部件組的主屏幕。

我嘗試了一些screenOrientation選項,這是我發現:

fullUser:堅持0度默認的旋轉。

用戶:允許旋轉值0,90和270

fullSensor:允許所有4個旋轉值。

不確定:同行爲user設置

鎖定nosensor:堅持0度旋轉

當你從測試看,沒有多少明確爲每個screenOrientation值做什麼。不知道爲什麼我無法重現在資源頁面上定義的效果。

0

fullUser:啓用自動旋轉時允許旋轉值0,90,180和270,否則爲默認值。

用戶:啓用自動旋轉時允許旋轉值0,90和270,否則爲默認值。但在某些片它也允許有4個方向......

@Vikram當你與fullUser只拿到0輩分,我猜你正在使用的設備apilevel < 18;)

相關問題