參考:android
參考:ios
設計師給了px單位的標註,Android開發到底要設置多少dip,dp,sp佈局
名稱 | 分辨率 | 屏幕密度 |
QVGA | 320*240 | 120 |
WQVGA400 | 400*240 | 120 |
WQVGA432 | 432*240 | 120 |
HVGA | 640*480 | 160 |
WSVGA | 1024*600 | 160 |
WXGA800 | 1280*800 | 160 |
WVGA800 | 800*480 | 240 |
WVGA854 | 854*480 | 240 |
WXGA720 | 1280*720 | 320 |
DensityDpi | 分辨率 | 屏幕密度 | Density |
160dpi | 320*533 | mdpi | 1 |
240dpi | 480*800 | hdpi | 1.5 |
320dpi | 720*1280 | xhdpi | 2 |
480dpi | 1080*1920 | xxhdpi | 3 |
560dpi | 1440*2560 | xxxhdpi | 3 |
對於設計師給的設計圖:spa
通常給兩個尺寸:.net
一個640×960(i4),一個1334×750(i6)設計
例如:blog
選擇GalaxyNexus做爲開發的目標機型。
該機型的屏幕尺寸是720x1280。設計師在720x1280的畫布上進行設計。
根據計算公式(px = (density / 160) dp),得知Galaxy Nexus上面,1dip=1dp=1sp=2px。因此對於40px的標註,開發須要給出20dip設置便可。遞歸
注意:density值表示每英寸有多少個顯示點(*) ip
屏幕適配方法:開發
(1) 第一種思路:
一種思路,就是在aplication裏初始化一下美工出的圖的比例 好比 1280X720 而後按照比例 每一個activity裏先獲取到root view,而後遞歸運算子view縮放的。
(2) 第二種思路:
個人適配方法,直接根據美工的設計圖來算就能夠,若是1080p的設計圖,把標註px除以3即爲dp值,若是是720p設計圖就除以2就好了,ps這裏的3和2就是Density。就是這麼簡單,基本沒有適配問題。
注意:density值表示每英寸有多少個顯示點(*)
(3) 對於若是有些機型的分辨率在value文件夾沒有找到正好匹配的問題。根據android設配匹配規則,沒有匹配,就會使用默認的value文件夾下的。例如:咱們以1280x720的機型作爲基準機,以屏幕的寬度爲例,分爲720份,也就是x1=1px. 咱們能夠在value文件夾中配置x1=0.5dp (由於1280x720的機子dpi大都在240dpi-320dpi之間,也就是1dp=2px)。 這時, 若是真的有比較奇葩的分辨率匹配不上,以Ipone-5爲例1134x640,那如今沒有匹配上。好比有個button,咱們給了高度x50。那麼他原本顯示的高度是多少呢? 根據樓主的計算方式: 1134/1280*50=44px.那麼以android的計算規則,ipone-5的dpi是多少呢(首先明確一點,android的dpi以前按照區間進行取值,也就說就是個相對值)? =341像素/英寸 。 那他的density也會取2. 也就是說1dp=2px.。那以後的流程就是,沒有匹配上,找到默認的文件夾x50,發現文件夾中的值爲25dp. 進行dp和px的轉換後顯示(25x2=50),也就是顯示50px. (ˇˍˇ) 差4px. 左右。 我能說這個和咱們使用dp進行適配的偏差實際上是同樣的嗎!!!因此解決方案就是:可使用選擇主流分辨率,設置dp爲單位的默認value文件,若是分辨率沒有匹配時顯示有偏差,其實這個問題也不是啥大問題。。