Android螢幕適配

2021-08-21 19:42:17 字數 2790 閱讀 8500

螢幕尺寸:螢幕的對角線,如一台小公尺電視49寸說的就是電視對角線長度是49寸(1英吋=2.54厘公尺)

解析度:

1920×1080指縱向1920個畫素點,橫向1080個畫素點,1280*720同理

螢幕畫素密度(dpi):

指每一英吋長度中,可顯示輸出的畫素個數,假如一英吋裡面有160個畫素,這個螢幕的畫素密度就是160dpi

dpi的數字受螢幕尺寸和解析度所影響,dpi可以通過計算所得

dp,dip,sp,px它們之間的關係

px:構成影象的最小單位,其實就是畫素單位即解析度單位,比如我們通常說的手機分辨列表800*400都是px的單位

dp/dip:

dip和dp是乙個意思,都是density independent pixels的縮寫,即密度無關畫素,規定以160dpi為基準,1dip=1px,如果密度是320dpi,則1dip=2px,以此類推。

也就是說當前我們裝置的dp是由android給予的基礎標準按比例進行翻譯的,這也是為什麼我們用dp能解決一部分適配的原因

desity

密度,表示乙個dp多少個畫素。desity = dpi/160

sp:同dp相似,sp作為字型大小單位,會隨著系統的字型大小改變,而dp作為單位則不會。所以建議在字型大小的數值要使用sp作為單位

mdpi,hdpi,xdpi,xxdpi,***dpi?如何計算和區分

名稱     畫素密度範圍     圖示尺寸

mdpi   120dpi ~ 160dpi  48*48px

hdpi   160dpi ~ 240dpi  72*72px

xdpi   240dpi ~ 320dpi  96*96px

xxdpi  320dpi ~ 480dpi  144*144

***dpi 480dpi ~ 640dpi  192*192

在google官方開發文件中,說明了 ** mdpi:hdpi:xhdpi:xxhdpi:***hdpi=2:3:4:6:8 ** 的尺寸比例進行縮放。例如,乙個圖示的大小為48×48dp,表示在mdpi上,實際大小為48×48px,在hdpi畫素密度上,實際尺寸為mdpi上的1.5倍,即72×72px,以此類推,可以繼續往後增加,不過一般情況下已經夠用了,這種用來去適配手機和平板之間的圖形問題

1.1.使用 "wrap_content" 和 "match_parent"

1.2.相對布局

1.3.. .9圖的應用

限定符:android在進行資源載入的時候,會根據螢幕資訊載入對應資料夾名字所在的那個資料夾資源,這些特殊的資源資料夾名字就是限定符

簡單說明:

sw全稱是smallest width,表示最小寬度,例如乙個適配資料夾values-sw411dp表示如果手機的最小寬度是411dp,那麼就命中該資料夾,使用的配置都是這個資料夾下的。**中可以用getresources().getconfiguration().smallestscreenwidthdp獲取sw

sw的理論上計算原理

例如:已知乙個5.1寸手機的解析度為1440*2560,求sw?

sw = 1440/desity,desity = dpi/160,dpi = sqrt(1440x1440+2560x2560)/5.1

sw = 1440/desity,desity = dpi/160,dpi =576

sw = 1440/desity,desity = 3.6

sw = 400

理論上是這樣的,實際真的是這樣嗎?

實際結果

呼叫getresources().getconfiguration().smallestscreenwidthdp獲取結果是411,也就是說sw = 411dp,這個時候不淡定了,適配這個手機要用values-sw411dp而不是上面計算的values-sw400dp。

3,1 第一種:自定義布局元件

其核心原理是根據乙個參照解析度進行布局(比如參照ui給的1080*1920),然後再各個機器上提取當前機器解析度換算出係數之後,然後再通過重新測量的方式來達到適配的效果,這一套方案基本能適用於95以上的機型

3.2 第二種:dimens適配

結合sw限定符計算得到:

300x400,5寸屏 的限定符sw=300px/desity=300px/0.625=480

600x800,10寸屏 的限定符sw=600px/desity=600px/0.625=960

所以就是sw480和sw960

自動生成了對應的dimens檔案之後,在xml檔案中就可以直接使用dimens,系統會根據手機去尋找對應資料夾下的dimens檔案用作適配

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相互轉換工具,實現兩種...