android实现自动横竖屏切换,android 中实现横竖屏切换【原创】
我們在使用android手機的時候,發現一些應用有橫豎屏切換的功能,一般實現有以下幾種方法:
一、設置
1.通過XML設置橫豎屏切換
在項目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation屬性,它有以下幾個參數:
“unspecified” 默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
“landscape” 橫屏顯示(寬比高要長)
“portrait” 豎屏顯示(高比寬要長)
“user” 用戶當前首選的方向
“behind” 和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
“sensor” 有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。
“nosensor” 忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了 ( “unspecified”設置除外 )
2.通過代碼設置
在Java代碼中通過
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
二、關于布局顯示
配置布局的方法有2種,如下:
1.在res目錄下建立layout-land和layout-port目錄,相應的layout文件名不變。layout-land是橫屏的layout,layout-port是豎屏的layout,代碼運行后,JVM會自動尋找相應的布局文件。
2.通過this.getResources().getConfiguration().orientation來判斷當前是橫屏還是豎屏然后來加載相應的xml布局文件。
當屏幕變為橫屏的時候,系統會重新呼叫當前Activity的OnCreate方法,即重新載入當前Activity。所以,可以通過判斷橫豎屏轉換來更換布局文件。
三、重新載入
重新載入,即上面提到的轉換屏幕時,系統重新呼叫OnCreate方法。由于重新創建Activity,當前屏幕狀態下的臨時數據會丟失,所以這里有一個關于數據存儲的問題。
1.是否重新載入可以設置
設置方法:在androidmanifest.xml中加入配置
android:configChanges="orientation"。
配置該屬性后的Activity在運行時,就不會重復的調用onCreate(),甚至不會調用onPause.onResume.只會調用一個
onConfigurationChanged(Configuration newConfig)
2.如果需要重新載入,那么就需要存儲臨時數據,可以根據Android的相關數據存儲方法處理。
如果要徹底禁止翻轉,可以設置android:screenOrientation的屬性為nosensor,如此就可以忽略重力感應了。
轉載時請注明出處及相應鏈接,本文永久地址:https://blog.yayuanzi.com/5383.html
微信打賞
支付寶打賞
感謝您對作者Lena的打賞,我們會更加努力!????如果您想成為作者,請點我
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android实现自动横竖屏切换,android 中实现横竖屏切换【原创】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正交变换在基下的矩阵都是可逆阵_矩阵分析
- 下一篇: php 控制器 模板,php学习笔记(一