Android 螢幕適配

2021-09-07 03:56:15 字數 2031 閱讀 6451

參考:

參考: 設計師給了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相互轉換工具,實現兩種...