1. 程式人生 > 其它 >14.螢幕適配

14.螢幕適配

一、為什麼要適配

為了保證使用者獲得一致的使用者體驗效果,使得某一元素在Android不同尺寸、不同解析度的、不同系統的手機上具備相同的顯示效果,能夠保持介面上的效果一致,我們需要對各種手機螢幕進行適配!

  • Android系統碎片化:基於Google原生系統,小米定製的MIUI、魅族定製的flyme、華為定製的EMUI等等;
  • Android機型螢幕尺寸碎片化:5寸、5.5寸、6寸等等;
  • Android螢幕解析度碎片化:320x480、480x800、720x1280、1080x1920等。

二、基本概念

  • 畫素(px):畫素就是手機螢幕的最小構成單元,px = 1畫素點 一般情況下UI設計師的設計圖會以px作為統一的計量單位。
  • 解析度:手機在橫向、縱向上的畫素點數總和 一般描述成 寬*高 ,即橫向畫素點個數 * 縱向畫素點個數(如1080 x 1920),單位:px。
  • 螢幕尺寸:手機對角線的物理尺寸。單位 英寸(inch),一英寸大約2.54cm 常見的尺寸有4.7寸、5寸、5.5寸、6寸。
  • 螢幕畫素密度(dpi):每英寸的畫素點數,例如每英寸內有160個畫素點,則其畫素密度為160dpi,單位:dpi(dots per inch)。
  • 標準螢幕畫素密度(mdpi): 每英寸長度上還有160個畫素點(160dpi),即稱為標準螢幕畫素密度(mdpi)。
  • 密度無關畫素(dp):與終端上的實際物理畫素點無關,可以保證在不同螢幕畫素密度的裝置上顯示相同的效果,是安卓特有的長度單位,dp與px的轉換:1dp = (dpi / 160 ) * 1px。
  • 獨立比例畫素(sp):字型大小專用單位 Android開發時用此單位設定文字大小,推薦使用12sp、14sp、18sp、22sp作為字型大小。

三、適配方案

適配的最多的3個解析度:1280 _720,1920_1080,800*480。

解決方案:

對於Android的螢幕適配,我認為可以從以下4個方面來做:

1、佈局元件適配

  • 請務必使用密度無關畫素 dp 或獨立比例畫素 sp 單位指定尺寸。
  • 使用相對佈局或線性佈局,不要使用絕對佈局
  • 使用wrap_content、match_parent、權重
  • 使用minWidth、minHeight、lines等屬性

dimens使用:

不同的螢幕尺寸可以定義不同的數值,或者是不同的語言顯示我們也可以定義不同的數值,因為翻譯後的長度一般都不會跟中文的一致。此外,也可以使用百分比佈局或者AndroidStudio2.2的新特性約束佈局。

2、佈局適配

使用限定符(螢幕密度限定符、尺寸限定符、最小寬度限定符、佈局別名、螢幕方向限定符)根據螢幕的配置來載入相應的UI佈局。

3、圖片資源適配

使用自動拉伸圖.9png圖片格式使圖片資源自適應螢幕尺寸。

普通圖片和圖示:

建議按照官方的密度型別進行切圖即可,但一般我們只需xxhdpi或xxxhdpi的切圖即可滿足我們的需求;

4、程式碼適配:

在程式碼中使用Google提供的API對裝置的螢幕寬度進行測量,然後按照需求進行設定。

5、介面配合:

本地載入圖片前判斷手機解析度或畫素密度,向伺服器請求對應級別圖片。