螢幕尺寸:螢幕的對角線,如一台小公尺電視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相互轉換工具,實現兩種...