国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android 判斷橫豎屏問題的詳解

2020-04-11 12:08:14
字體:
來源:轉載
供稿:網友

Android橫豎屏要解決的問題應該就兩個:一。布局問題;二。重新載入問題。
1.布局問題:
如果不想讓軟件在橫豎屏之間切換,最簡單的辦法就是在項目的 AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation屬性,他有以下幾個參數:
"unspecified"
默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
"landscape"
橫屏顯示(寬比高要長)
"portrait"
豎屏顯示(高比寬要長)
"user"
用戶當前首選的方向
"behind"
和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
"sensor"
有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。
"nosensor"
忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了 ( "unspecified"設置除外 )。
也可以在Java代碼中通過setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);來設置。
如果要讓軟件在橫豎屏之間切換,由于橫豎屏的高寬會發生轉換,有可能會要求不同的布局。可以通過以下方法來切換布局:

1)在res目錄下建立layout-land和layout-port目錄,相應的layout文件不變,比如main.xml。layout-land是橫屏的layout,layout-port是豎屏的layout,其他的不用管,模擬器會自動尋找。

2)通過this.getResources().getConfiguration().orientation來判斷當前是橫屏還是豎屏然后來加載相應的xml布局文件。因為當屏幕變為橫屏的時候,系統會重新呼叫當前Activity的OnCreate方法,你可以把以下方法放在你的OnCreate中來檢查當前的方向,然后可以讓你的SetContentView來載入不同的Layout xml.

復制代碼 代碼如下:

if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
Log.i("info", "landscape");
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Log.i("info", "portrait");
}

2.重新載入問題。如果不需要從新載入,可以在androidmanifest.xml中加入配置android:configChanges="orientation",配置android:configChanges的作用就是如文檔所說的:Specify one or more configuration changes that the activity will handle itself. If not specified, the activity will be restarted if any of these configuration changes happen in the system。這樣在程序中. Activity就不會重復的調用onCreate()甚至不會調用onPause.onResume.只會調用一個onConfigurationChanged(Configuration newConfig)。
主站蜘蛛池模板: 滁州市| 邳州市| 民勤县| 墨脱县| 炎陵县| 新建县| 神池县| 新营市| 寿宁县| 故城县| 新干县| 万州区| 镇康县| 平原县| 湘潭市| 五河县| 绥中县| 连江县| 安溪县| 柏乡县| 汝阳县| 南京市| 宜兰市| 正蓝旗| 昭苏县| 儋州市| 武强县| 牡丹江市| 苏州市| 苍山县| 岳普湖县| 浑源县| 博兴县| 霍林郭勒市| 若羌县| 隆尧县| 濉溪县| 于都县| 朔州市| 南城县| 长垣县|