Android 屏幕適配

參考: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文件,若是分辨率沒有匹配時顯示有偏差,其實這個問題也不是啥大問題。。

相關文章
相關標籤/搜索