所以我希望我的應用始終鎖定設備的自然方向。所以基本上,我想強制旋轉到0度。有一個getRotation()
方法在這裏:有沒有辦法做一個「setRotation()」方法或代碼?
http://developer.android.com/reference/android/view/Display.html
然而,沒有setRotation(INT旋轉),將接受這裏找到Surface.ROTATION_X
參數之一: http://developer.android.com/reference/android/view/Surface.html
那麼,有沒有一些方法來做到這一行代碼將始終工作?或者這是否必須用一些代碼來完成?
作爲手動解決方案我唯一能想到的是以下內容,但我對此有一些擔憂。
我可以使用display.getRotation()
。然後我會檢查它是0還是180度,之後我會得到顯示高度和寬度,並查看哪一個比另一個長。如果看起來我處於橫向模式,那麼我會知道設備的自然方向是風景,所以我可以將其設置爲風景。但是如果旋轉角度是270°或90°,那麼我會知道自然的方向是肖像,我可以將它設置爲肖像。
但是,我的擔心是在哪裏做到這一點,以便它始終有效。假設用戶在執行這段代碼時旋轉屏幕,如果設備在使用方法之間改變方向,並使用if語句檢查寬度與高度之間的差異,我認爲它可以扔掉一切。如果我把這個放在onCreate()
或onResume()
會怎麼樣?事情可能會擺脫怪物嗎?
由於用戶轉動設備,屏幕重新定向是否可能導致onCreate()
或onResume()
中斷?另一個問題是,如果將設備翻轉180度,該活動永遠不會被破壞,所以我認爲這種情況的行爲可能是90度轉彎或180度轉彎。
我看,IT也可能是「未說明」。我會嘗試這兩個,謝謝 – 2011-04-29 13:56:41
我認爲「未指定」類似於默認。無論如何,它更好地測試,不要猜測。 – Martinez 2011-04-29 21:42:19