1. 手機螢幕要素
手機: m2
解析度:1080x1920 (手機寬度和長度的畫素數)
螢幕尺寸:手機螢幕對角線長度 8寸
螢幕密度:dpi 螢幕每英吋的畫素數
計算公式:(1080平方+1920平方)再開平方/8寸 = 275.36 dpi
density: 密度()
android中規定 160px/英吋,就是每英吋為160px; 意味著160dpi螢幕密度: 1dp = 1px
所以此手機的密度為: 275.36dpi/160= 1.72 倍; 意味著160dpi螢幕密度: 1dp = 1.72px
綜上所述:當我們android開發者需要做適配時,可以獲取解析度和螢幕尺寸計算出螢幕密度,再計算出密度(即當前手機的1dp=xxpx),再根據ui給的px尺寸去給出dp值; 當ui標註高為30px時,我們用30/1.72;
getresources().getdisplaymetrics().densitydpi 就是螢幕密度。
getresources().getdisplaymetrics().density 就是密度, 也可以理解為1dip相當於多少個px啦。
2. 尺寸的適配
上述1中獲取的是螢幕真實的密度,下列是系統標準密度,不可能針對每個真實密度去做一套配圖,所以以系統標準密度為準,去作圖適配;特殊的尺寸時,再做特殊適配;
螢幕密度 標準 密度 解析度
120 dpi、 ldpi 0.75倍 240x320
160 dpi(基準) mdpi 1倍 320x480
240 dpi hdpi 1.5倍 480x800
320 dpi xhdpi 2倍 720x1280
480dpi xxhdpi 3倍 1080x1920
建議在xhdpi中作圖(或者xxhdpi也可以),鑑於apk的大小,一般在xhdpi中放入就可以,計算的簡單,就是1dp=2px啊,放進drawable-xhdpi的資源資料夾中。 的大小就通過dp去控制,這樣就可以適配各種手機了;
3.螢幕的寬高差異
解析度 320x480 480x800 720x1280與1080x1920
螢幕寬度 320dp 320dp 360dp
螢幕寬高比 2:3 3:5 9:16
如果想消除這些比例差異,可以通過新增布局檔案來實現。一般情況下,布局檔案放在layout資料夾中,如果要單獨對360dp的螢幕進行調整,你可以單做做乙個布局檔案放在layout-w360dp中;如果你想對某個特殊的解析度進行調整,那麼你可以將布局檔案放在標有解析度的資料夾中,如 layout-854×480。
android mainfest中新增,支援大屏比差;做華為mate9的適配時,和ui匹配不上,最後發現是螢幕寬高比原因:
備註:resizeableactivity 屬性在 targetsdkversion 小於 24 的應用中值為 false,其他為 true。
4.幾個資源的資料夾
在720×1280中做了,要讓開發人員放到drawable-xhdpi的資源資料夾中,這樣才可以顯示正確。個人認為僅提供一套素材就可以 了,可以測試一下應用在低端手機上執行是否流暢,如果比較卡頓,可以根據需要提供部分mdpi的素材,因為xhdpi中的執行在mdpi的手機上 會比較佔記憶體。
以應用圖示為例,xhdpi中的圖示大小是96px,如果要單獨給mdpi提供圖示,那麼這個圖示大小是48px,放到drawable-mdpi 的資源資料夾中。各個資源資料夾中的尺寸同樣符合ldpi:mdpi:hdpi:xhdpi:xxhdpi=3:4:6:8:12的規律。
如果你把乙個高2px的分割線素材做成了9.png,你想讓細線在不同密度中都是2px,而不被安卓根據密度進行縮放,怎麼辦?你可以把這個分 割線素材放到drawable-nodpi中,這個資源資料夾中的,將按照實際畫素大小進行顯示,而不會被安卓根據密度進行縮放。即在mdpi中細線 是2px(2dp),在xhdpi中細線是2px(1dp)。
5.螢幕適配命名
layout
layout-land
layout-port
values-port-xhdpi
drawable-land-xxhdpi
values-sw600dp
6.注: 計算出實際的dpi螢幕畫素,做android的螢幕適配還是要匹配android官方標準的dp去適配的,
例:計算出的實際dpi為401dpi,我們在android適配時以以上標準為基礎,就是xxhdpi, 3倍的,1dp=3px去做螢幕適配
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相互轉換工具,實現兩種...