android UI設計圖片和文字尺寸px對應dp、sp值換算
阿新 • • 發佈:2018-11-03
螢幕尺寸:指螢幕的對角線長度,單位是英寸,1英寸等於2.54釐米,常見尺寸有2.4,2.8,3.5,3.7,4.2,5.0,5.5,6.0等。
螢幕解析度:指在縱橫向上的畫素點數,單位是px,1px為一個畫素點,一般格式為縱向畫素*橫向畫素,如1960*1080。
螢幕畫素密度:相同尺寸情況下,解析度越高,螢幕越清晰,即螢幕畫素密度越大。螢幕畫素密度指每英寸上面的畫素點個數,單位是dpi,是“dot per inch”的縮寫,計算方式如下圖:
密度無關畫素:單位dip或dp,是Density Independent Pixels的縮寫,Android規定,在螢幕畫素密度為160dpi的情況下,1dp=1px。而在畫素密度為320dpi的情況下,1dp=2px,以此類推。計算公式:1dp=(畫素密度/160dpi)*1px。
sp:全稱cale-independent pixels,與dp類似,用於設定字型大小。
設定佈局時,使用dp和sp(字型),不要直接使用px,這樣才能保證螢幕適配。
dpi的範圍劃分
(表中畫素密度範圍後包前不包,如120~160為120<x<=160):及dp/sp/px換算比率(rate=畫素密度/160dpi,dp=px/rate)
名稱 | ldpi | mdpi | hdpi | xhdpi | xxhdpi | xxxhdpi |
---|---|---|---|---|---|---|
畫素密度 | 0~120dpi | 120dpi~160dpi | 160dpi~240dpi | 240dpi~320dpi | 320dpi~480dpi | 480dpi~640dpi |
比率rate |
0.75 | 0.75~1 | 1~1.5 | 1.5~2 | 2~3 | 3~4 |
代表性解析度 | 240*320 | 320*480 | 480*800 | 720*1280 | 1080*1920 |
Android的圖示尺寸
畫素密度 | 啟動圖示 | 歡迎頁背景圖 | 操作欄圖示 | 上下文圖示 | 系統通知圖示(白色) | 最細筆畫 |
---|---|---|---|---|---|---|
mdpi |
48×48 px | 320*480 | 32×32 px | 16×16 px | 24×24 px | 不小於2 px |
hdpi |
72×72 px | 480*800 | 48×48 px | 24×24 px | 36×36 px | 不小於3 px |
xhdpi |
96×96 dp | 720*1280 | 72×72 dp | 32×32 dp | 48×48dp | 不小於4 dp |
xxhdpi |
144×144 px | 1080*1920 | 96×96 px | 48×48 px | 72×72 px | 不小於6 px |
UI設計舉例
比如UI設計師給的圖是以750px的螢幕寬度作為標準的,例如一張圖片的尺寸是100px*100px,或者字型大小為100px,則換算成android的dp和sp為(以xxhdpi屏為常用適配機型 rate = 320/160~480/160=2~3):(1080/750)*100/rate=144/2~144/3=48dp~72dp