前言html
介紹android
爲了按照屏幕類型對設備進行分類,Android 爲每種設備定義了兩個特徵:屏幕尺寸和屏幕密度。shell
名詞註釋windows
屏幕尺寸:即系統爲應用界面所提供的可見空間, 應用的屏幕尺寸並不是設備的實際屏幕尺寸,而是綜合考慮屏幕方向、系統裝飾(如導航欄)和窗口配置更改後的尺寸。微信
像素密度:屏幕上像素的物理密度,即屏幕單位面積內的像素數,稱爲 dpi(dots per inch,每英寸的點數)。它與分辨率不一樣,後者是屏幕上的總像素數。markdown
像素密度的計算方法,下面將經過具體數據舉例說明。假設有一部手機,屏幕的物理尺寸爲1.5英寸x2英寸,屏幕分辨率爲240x320,則能夠計算出在這部手機的屏幕上,每英寸包含的像素點的數量爲240/1.5=160dpi(橫向)或320/2=160dpi(縱向),160dpi就是這部手機的像素密度。橫向和縱向的這個值都是相同的,緣由是大部分手機屏幕使用正方形的像素點。app
下圖爲屏幕尺寸相同但像素密度不一樣的兩個設備上圖像的直觀展現效果。編輯器
pxide
介紹佈局
即像素,1px表明屏幕上一個物理的像素點;一樣px的圖片,在不一樣手機上顯示的實際大小可能不一樣,效果參考下圖。
測試關注點
px在實際項目中的應用場景,例如頁面中線條的寬細度、字體大小,具體實例以下圖所示。
介紹
測試關注點
① 分辨率是移動端應用兼容性測試時,設備選擇標準的一個重要因素;
② 經過adb shell wm size命令可查看屏幕分辨率。
3. dp
介紹
這個是最經常使用的尺寸單位,它與「像素密度」密切相關。dp 是一個虛擬像素單位,1 dp 約等於中密度屏幕(160dpi;「基準」密度)上的 1 像素,dp 與px的換算關係以下:
px = dp * (dpi / 160)
結合具體數據實例說明換算方法及直觀表現以下,Android系統定義了四種像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它們對應的dp到px的係數分別爲0.7五、一、1.5和2,這個係數乘以dp長度就是像素數。例如界面上有一個長度爲「80dp」的圖片,那麼它在240dpi的手機上實際顯示爲80x1.5=120px,在320dpi的手機上實際顯示爲80x2=160px。若是你拿這兩部手機放在一塊兒對比,會發現這個圖片的物理尺寸「差很少」,實現了「密度獨立性」,使用dp做爲單位的效果可見下圖。
測試關注點
① 在實際項目中,非文字的通常會使用dp做爲尺寸度量單位,如指定兩個視圖的間距,H5頁面中某佈局的寬度(eg.layout_width="60dp");
② 經過adb shell dumpsys window displays命令可查看屏幕分辨率、dp值、虛擬鍵高度等。(adb shell wm density可查看dpi)
③ 在定義距離、大小等時,爲實現「密度獨立性」,需關注度量單位應爲dp,並可實現動態的px轉換。
④ 換算成物理距離後,1dp約爲0.19mm。
介紹
與dp徹底相同,只是名字不一樣而已,早期使用較多。
介紹
sp是與縮放無關的抽象像素(Scale-independent Pixel),sp和dp很相似但惟一的區別是,Android系統容許用戶自定義文字尺寸大小(小、正常、大、超大等等),當文字尺寸是「正常」時,1sp=1dp=0.00625英寸;而當文字尺寸是「大」或「超大」時,1sp>1dp=0.00625英寸。相似咱們在windows裏調整字體尺寸之後的效果——窗口大小不變,只有文字大小改變。
當指定文本大小時,則會使用可縮放像素 (sp) 做爲單位。
其餘幾個較少比較少用到的尺寸單位,舉例以下:
mm:即毫米;
in:即英寸,1英寸≈2.54釐米;
pt:1pt=1/72英寸=0.035釐米。
結語
搜狗測試微信號:Qa_xiaoming
搜狗測試QQ粉絲羣:459645679
本文分享自微信公衆號 - 搜狗測試(SogouQA)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。