參考:
參考: 設計師給了px單位的標註,android開發到底要設定多少dip,dp,sp
名稱解析度
螢幕密度
qvga
320*240
120wqvga400
400*240
120wqvga432
432*240
120hvga
640*480
160wsvga
1024*600
160wxga800
1280*800
160wvga800
800*480
240wvga854
854*480
240wxga720
1280*720
320
densitydpi
解析度螢幕密度
density
160dpi
320*533
mdpi
1240dpi
480*800
hdpi
1.5320dpi
720*1280
xhdpi
2480dpi
1080*1920
xxhdpi
3560dpi
1440*2560
***hdpi3
對於設計師給的設計圖:
一般給兩個尺寸:
乙個640×960(i4),乙個1334×750(i6)
例如:
選擇galaxynexus作為開發的目標機型。
該機型的螢幕尺寸是720x1280。設計師在720x1280的畫布上進行設計。
根據計算公式(px = (density / 160) dp),得知galaxy nexus上面,1dip=1dp=1sp=2px。所以對於40px的標註,開發需要給出20dip設定即可。
注意:density值表示每英吋有多少個顯示點(*)
螢幕適配方法:
(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檔案,如果解析度沒有匹配時顯示有誤差,其實這個問題也不是啥大問題。。
android螢幕適配
1 配置android應用程式適配在不同的手機上,需要在androidmanifest.xml檔案的manifest標籤中新增子元素 1 2 3 4 5 6 7 8 9 10 manifestxmlns android supports screens android smallscreens tr...
Android螢幕適配
在sdk中的幫助文件中。develpe training best practices supporting multiple screens 這裡有多屏適配的介紹。現做簡單記錄。screen size small 至少 426dp x 320dp normal 至少 470dp x 320dp l...
android螢幕適配
ui在不同的螢幕畫素或大小中顯示效果可能會不同 1 建議使用盡量使用線性布局和相對布局,基本上不會產生螢幕大小不適應的問題 2 設定控制項寬高的時候使用單位dip dp 是根據當前裝置大小比例計算出來的 3 文字設定盡量使用sp單位 4 盡量不使用px設定大小 畫素px和dip相互轉換工具,實現兩種...