電話日志222屏幕方向講解_第1頁
電話日志222屏幕方向講解_第2頁
電話日志222屏幕方向講解_第3頁
電話日志222屏幕方向講解_第4頁
電話日志222屏幕方向講解_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

技能點(diǎn):屏幕方向鎖定1、屏幕的方向概念如果APP不設(shè)置屏幕的方向,那么默認(rèn)的方向就會隨著系統(tǒng)的改變而改變,在此時(shí)回顧一下相關(guān)的Activity的生命周期:豎屏(portrait)轉(zhuǎn)橫屏(landscape)或者是橫屏轉(zhuǎn)豎屏,Activity生命周期都只走一次(并沒有橫屏轉(zhuǎn)豎屏走兩次的說法)。當(dāng)然也可以通過在AndroidManifest.xml中的Activity上設(shè)置android:configChanges的屬性來控制生命周期。1、屏幕的方向概念當(dāng)然也可以通過在AndroidManifest.xml中的Activity上設(shè)置android:configChanges的屬性來控制生命周期:“mcc“:移動國家號碼,由三位數(shù)字組成,每個國家都有自己獨(dú)立的MCC,可以識別手機(jī)用戶所屬國家?!癿nc“:移動網(wǎng)號,在一個國家或者地區(qū)中,用于區(qū)分手機(jī)用戶的服務(wù)商?!發(fā)ocale“:用戶所在地區(qū)發(fā)生變化?!皌ouchscreen“:觸摸的屏幕發(fā)生變化(這個應(yīng)該不容易發(fā)生)“keyboard“:鍵盤模式發(fā)生變化,例如:用戶接入外部鍵盤輸入?!発eyboardHidden“:用戶打開手機(jī)硬件鍵盤“navigation“:導(dǎo)航欄類型發(fā)生變化(應(yīng)該指硬件的導(dǎo)航按鈕功能發(fā)生變化)“orientation“:設(shè)備旋轉(zhuǎn),橫向顯示和豎向顯示模式切換。“fontScale“:全局字體大小縮放發(fā)生改變2、屏幕方向設(shè)定AndroidManifest.xml設(shè)定的幾種常用情況:1,android:configChanges="orientation",activity的生命周期無論值豎屏切橫屏還是橫屏切豎屏都是走一遍生命周期,不會調(diào)用onConfigurationChanged的方法;2,android:configChanges="screenSize",結(jié)果同上;3,android:configChanges="orientation|screenSize",Activity在切換橫豎屏?xí)r不走生命周期,只會在切換的時(shí)候調(diào)用onConfigurationChanged的方法。2、屏幕方向設(shè)定java代碼程序設(shè)定,要設(shè)置屏幕的方向,當(dāng)然先需要判斷屏幕的方向,下面提供兩種方法:1,

DisplayMetricsdm=newDisplayMetrics();

//顯示的度量getWindowManager().getDefaultDisplay().getMetrics(dm);

//必須調(diào)用,window才會賦值給dm(或者DisplayMetricsdm=getResources().getDisplayMetrics())intwidth=dm.widthPixels;intheight=dm.heightPixels;然后根據(jù)寬高的大小比,判斷是豎屏(portrait)還是橫屏(landscape)。

2、屏幕方向設(shè)定java代碼程序設(shè)定,要設(shè)置屏幕的方向,當(dāng)然先需要判斷屏幕的方向,下面提供兩種方法:2,if(getResources().getConfiguration().orientation==Configuration.ORIENTATION_PORTRAIT)是否為豎屏,或者也可以判斷是否為橫屏。2、屏幕方向設(shè)定已知了屏幕方向,那么就可以做出需求設(shè)置:1,在代碼中:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

設(shè)置為橫屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

設(shè)置為豎屏

2,在項(xiàng)目的AndroidManifest.xml中的Activity上設(shè)置Android:screenOrientation的屬性:"unspecified":默認(rèn)值,不特別指定,由系統(tǒng)來判斷顯示方向;"landscape":橫屏顯示(寬比高要長),豎屏向左或右旋轉(zhuǎn)90度;userLanscape,只豎屏旋轉(zhuǎn)90度;"portrait":豎屏顯示(高比寬要長)

,userPortrait跟它效果一樣就是豎屏而已;"user":用戶當(dāng)前首選的方向;"behind":和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)

;"sensor":有物理的感應(yīng)器來決定,一般設(shè)置的自動旋轉(zhuǎn)應(yīng)該就是根據(jù)物理的感應(yīng)器來相應(yīng)的;"nosensor":忽略物理感應(yīng)器,這樣就不會隨著用戶旋轉(zhuǎn)設(shè)備而更改了("unspecified"設(shè)置除外);2、屏幕方向設(shè)定java代碼程序設(shè)定,進(jìn)階:在上面方法基礎(chǔ)上,還可以優(yōu)化一下,就是抽取基類。搞一個BaseActivity繼承Activity,所有的activity再繼承這個BaseActivity,在BaseActivity里面setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);具體代碼如下:publicclassBaseActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論