Android實現屏幕旋轉方法總結
這篇文章主要介紹了Android實現屏幕旋轉方法,實例總結了屏幕旋轉的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例總結了Android實現屏幕旋轉方法。分享給大家供大家參考。具體如下:
在介紹之前,我們需要先了解默認情況下android屏幕旋轉的機制:
默認情況下,當用戶手機的重力感應器打開后,旋轉屏幕方向,會導致當前activity發生onDestroy-> onCreate,這樣會重新構造當前activity和界面布局,如果在Camera界面,則表現為卡頓或者黑屏一段時間。如果是在橫豎屏UI設計方面,那么想很好地支持屏幕旋轉,則建議在res中建立layout-land和layout-port兩個文件夾,把橫屏和豎屏的布局文件分別放入對應的layout文件夾中。
了解了這些以后,我們對android的屏幕旋轉方法進行如下總結:
1. AndroidManifest.xml設置
如果單單想設置橫屏或者豎屏,那么只需要添加橫豎屏代碼:
?
1 2 android:screenOrientation="landscape"橫屏設置; android:screenOrientation="portrait"豎屏設置;這種方法的優點:即使屏幕旋轉,Activity也不會重新onCreate。
缺點:屏幕只
2. 代碼動態設置
如果你需要動態改變橫豎屏設置,那么,只需要在代碼中調用setRequestedOrientation()函數:
?
1 2 3 4 5 6 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //橫屏設置 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //豎屏設置 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); //默認設置這種方法優點:可以隨意動態設置,滿足我們人為改變橫豎屏的要求,同時滿足橫豎屏UI不同的設計需求;
缺點:如果改變設置,那么,Activity會被銷毀,重新構建,即重新onCreate;
3. 重寫onConfigurationChanged
如果你不希望旋轉屏幕的時候Activity被不斷的onCreate(這種情況往往會造成屏幕切換時的卡頓),那么,可以使用此方法:
首先,在AndroidMainfest.xml中添加configChanges:
?
1 2 3 <activity android:name=".Test" android:configChanges="orientation|keyboard"> </activity>注意,keyboardHidden表示鍵盤輔助功能隱藏,如果你的開發API等級等于或高于13,還需要設置screenSize,因為screenSize會在屏幕旋轉時改變;
?
1 android:configChanges="keyboardHidden|orientation|screenSize"新聞熱點
疑難解答