版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、三分鐘搞定安卓適配問題 Android屏幕適配出現(xiàn)的原因 重要概念 屏幕尺寸 屏幕分辨率 屏幕像素密度 dp dip dpi sp px mdpi hdpi xdpi xxdpi 解決方案 1、圖片適配 2、尺寸適配 3、布局適配 4、代碼適配 5、權(quán)重適配 一:Android屏幕適配出現(xiàn)的原因 由于Android系統(tǒng)的開放性,任何用戶、開發(fā)者、OEM廠商、運營商都可以對 Android進行定制,修改成他們想要的樣子。但是這種“碎片化”到底到達什么程度呢? 在2012年,OpenSignalMaps(以下簡稱OSM)發(fā)布了第一份Android碎片化報告,統(tǒng)計 數(shù)據(jù)表明, 2012年,支持And
2、roid的設(shè)備共有3997種。 2013年,支持Android的設(shè)備共有11868種。 2014年,支持Android的設(shè)備共有18796種。 右邊這張圖片所顯示的內(nèi)容足以充分說明當(dāng) 今Android系統(tǒng)碎片化問題的嚴重性,因為 該圖片中的每一個矩形都代表著一種Android設(shè)備 詳細的統(tǒng)計數(shù)據(jù)請到查看 而隨著支持Android系統(tǒng)的 設(shè)備(手機、平板、電視、 手表)的增多,設(shè)備碎片化 、品牌碎片化、系統(tǒng)碎片 化、傳感器碎片化和屏幕 碎片化的程度也在不斷地 加深。而我們今天要探討 的,則是對我們開發(fā)影響 比較大的屏幕的碎片 化。 右一是Android屏幕尺寸的 示意圖 藍色矩形的大小代表不同
3、尺寸,顏色深淺則代表所 占百分比的大小。 右二只是4,4s,5,5c,5s和平 板的尺寸,現(xiàn)在還應(yīng)該加 上新推出的iphone6和plus ,但是和Android的屏幕碎 片化程度相比而言,還是 差的太遠 二,重要概念 1. 什么是屏幕尺寸、屏幕分辨率、屏幕像素密度? u 屏幕尺寸:是指屏幕對角線的長度。單位是英寸,1英寸=2.54厘米; 比如常見的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0等 u 屏幕分辨率:是指在橫縱向上的像素點數(shù),單位是px,1px=1像素點,一般是縱向像素 橫向像素,如1280720; u 屏幕像素密度:是指每英寸上的像素點數(shù),單位是dpi
4、,即“dot per inch”的縮寫,像 素密度和屏幕尺寸和屏幕分辨率有關(guān)。在單一變化條件下,屏幕尺寸越小、分辨率越高 ,像素密度越大,反之越小。 u 三者關(guān)系 例如:計算Nexus5的屏幕像素密度: 屏幕尺寸:4.95inch、分辨率:19201080,屏幕 像素密度:445 2.dp、dip、dpi、sp、px px我們應(yīng)該是比較熟悉的,前面的分辨率就是用的像素為單位, 大多數(shù)情況下,比如UI設(shè)計、Android原生API都會以px作為統(tǒng)一的計量單位, dip和dp是一個意思,都是Density Independent Pixels的縮寫,即密度無關(guān)像 素,上面我們說過,dpi是屏幕像素
5、密度,假如一英寸里面有160個像素,這 個屏幕的像素密度就是160dpi,那么在這種情況下,dp和px如何換算呢?在 Android中,規(guī)定以160dpi為基準,1dip=1px,如果密度是320dpi,則 1dip=2px,以此類推。 sp,即scale-independent pixels,與dp類似,但是可以根據(jù)文字大小首選項 進行放縮,是設(shè)置字體大小的御用單位。 假如同樣都是畫一條480px的線,在720*1280分辨率手機上顯示為2/3屏幕寬度 ,在480*800的手機上則占滿了全屏,如果使用dp為單位,在這兩種分辨率下 160dp都顯示為屏幕一般的長度。這也是為什么在Android
6、開發(fā)中,寫布局的時 候要盡量使用dp而不是px的原因。下頁圖例 3. 什么是mdpi、hdpi、xdpi、xxdpi、xxxdpi?如何計算和區(qū)分? 用于區(qū)分不同的像素密度。 現(xiàn)在主流的手機,都可以找到自己所在的屏幕密度檔次。比如一般來說720p的手 機是xhdpi,1080p的是xxhdpi。還有一種情況,比如同樣都是4 英寸的480*800和 4英寸的960*540,盡管實際算出來的dpi不一樣,但是都要歸到hdpi這一檔,dpi都 變成了240,這是Android 系統(tǒng)做的一種近似處理,目的是為了簡化計算。也就是 說,雖然實際上手機的密度有很多種,但是大家會找到自己的近似區(qū)間,然后用區(qū)
7、間的代表值去做運算。 根據(jù)前面講的屏幕密度區(qū)間,你可以記住這樣一個簡單的計算方法: dp 是一個虛擬的概念,是在程序運行的時候算出來的。怎么理解呢?Android 設(shè)備那么多,分辨率也那么多,直接學(xué)iOS用px做單位肯定不行的。為此 Google搞了一個叫dp的東西,換算公式是dp=(dpi/160)*px。也就是說,在 密度為160dpi的屏幕上,1px就是1dp。依次類推, 在320dpi的屏幕上,1dp就 是2px。屏幕密度越大,1個dp對應(yīng)的px也就越多。 二,解決方案-屏幕適配 1、圖片適配 2、尺寸適配 3、布局適配 4、代碼適配 5、權(quán)重適配 1、圖片適配 圖片的查找順序: ld
8、pi 、mdpi 、 hdpi 、xhdpi、xxhdpi、xxxhdpi 先找自己對應(yīng)的文件夾,再往大的找,大的文件夾中沒有圖片,就 再往小的找 例如mdpi(480*320)的手機,查找順序如下 mdpi 、drawable 、 hdpi 、xhdpi、xxhdpi、xxxhdpi、ldip 2、尺寸適配 根據(jù)分辨率創(chuàng)建相應(yīng)values文件夾, 比如 values-1280 x720 (大值在前) 在values文件夾下創(chuàng)建:dimens xml文件 在values-800 x480文件夾下創(chuàng)建:dimens xml文件 在values-1280 x720文件夾下創(chuàng)建:dimens xml
9、文件 代碼演示屏幕寬度的一半。 相應(yīng)的,在開發(fā)的時候,Google提供了一些資源目錄,你可以 把對應(yīng)大小的圖片放進去。 舉個例子,你想展示一張100dp*100dp的圖片,那么 在mdpi目錄下,你需要放100px*100px的原圖。 在xxxhdpi下,這張圖片就得是 300px*300px。你的APP在運行的時候,如果需要加載 這張圖片,系統(tǒng)就會根據(jù)當(dāng)前手機的密度,去相應(yīng)的資源目錄下去找。你可能會問, 找不到怎么辦呢?比如當(dāng)前是mdpi的手機,系統(tǒng)發(fā)現(xiàn)mdpi下沒有這張圖,就會去比 mdpi更大的目錄找,然后進行縮放。實在找不到就去比mdpi更小的目錄找, 找到之 后再拉伸。那么設(shè)計師在出
10、圖的時候,有兩種方法可以選。 一是按照官方的推薦方法,在上面所有目錄下各放置一份同樣的圖片,根據(jù)dp和px的 換算關(guān)系切成不同的大小,讓系統(tǒng)自動去尋找最合適的圖片。這種方法成倍的增加設(shè) 計師的工作量不說,還會增加安裝包的體積,用戶下載的時候要多耗費流量。 第二種方法是選一個基準的屏幕密度,比如xhdpi,720p。所有的資源都放在這里, 讓系統(tǒng)自動 去縮放。這種方法呢,對于小屏幕的手機來說,因為要在運行的時候把一 張大圖縮放成小圖,不如直接用小圖節(jié)省內(nèi)存。對大屏幕的手機呢,比如你720p的圖 拿 到1080p的手機去顯示,肯定會因為縮放而失真。 綜合起來的話,我更傾向于第二種方法。具體選擇哪種屏幕密度做標(biāo)準,你可以參考 下Google官方的統(tǒng)計或者友盟上面的主流分辨率。 3、布局適配 和圖片適配差不多。我們可以為不同的屏幕創(chuàng)建 不同的layout文件夾 如果我們想讓大屏幕的手機顯示布局和別的手機不一樣,就可以再 為大屏創(chuàng)建一個layout。 根據(jù)分辨率創(chuàng)建layout
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)安全部工作年終總結(jié)
- 老年癡呆用藥指導(dǎo)護理
- 裝載機系統(tǒng)培訓(xùn)
- 四川省遂寧市遂寧中學(xué)2024-2025學(xué)年度上期高一半期考試英語 - 副本
- 湖南省長沙市長郡梅溪湖中學(xué)2024-2025學(xué)年上學(xué)期八年級第一次月考英語試題(含答案無聽力部分)
- 廣東省江門市福泉奧林匹克學(xué)校2024-2025學(xué)年上學(xué)期七年級數(shù)學(xué)第一次月考試題(無答案)
- 2024-2025學(xué)年寧夏中衛(wèi)市中衛(wèi)七中七年級(上)第一次月考數(shù)學(xué)試卷(無答案)
- 2024-2025學(xué)年初中九年級數(shù)學(xué)上冊期中測試卷及答案(人教版)
- T-ZFDSA 30-2024 靈芝鴨制作標(biāo)準
- 陜西省安康市漢濱區(qū)部分學(xué)校2024-2025學(xué)年七年級上學(xué)期期中地理試卷
- 混凝土路面工程監(jiān)理實施細則
- 煤炭行業(yè)2025年行業(yè)回歸合理盈利估值仍有提升空間
- 期中測試卷(1-4單元)(試題)-2024-2025學(xué)年四年級上冊數(shù)學(xué)北師大版
- 5.2 珍惜師生情誼同步課件-2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 人教版2024新版七年級上冊數(shù)學(xué)期中模擬測試卷(含答案解析)
- 專題25 圓的基本性質(zhì)(分層精練)(解析版)
- 2024中國石化校園招聘超1萬人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- GB/T 18029.8-2024輪椅車第8部分:靜態(tài)強度、沖擊強度及疲勞強度的要求和測試方法
- 中華民族共同體概論課件專家版9第九講 混一南北和中華民族大統(tǒng)合(元朝時期)
- 中職學(xué)考《哲學(xué)與人生》考試復(fù)習(xí)題庫(含答案)
- 電梯日管控、周排查、月調(diào)度內(nèi)容表格
評論
0/150
提交評論