android 螢幕適配

2021-08-25 08:07:29 字數 1833 閱讀 2000

android螢幕適配

問題:既然原理都一樣,都需要多套dimens.xml檔案,為什麼說dp適配就比px適配好呢?

因為px適配是根據螢幕解析度的,android裝置解析度一大堆,而且還要考慮虛擬鍵盤。而dp適配無論手機螢幕的畫素多少,密度比值多少,80%的手機的最小寬度dp值(widthpixels / density)都為360dp,這樣就大大減少了dimens.xml檔案。

px適配會根據裝置的解析度去找對應的dimens.xml檔案(如下圖,執行在解析度為1920x1080的手機上,系統會自動找到對應的values-1920x1080檔案),那dp適配呢?

dp適配也是一樣的,只不過dp適配是根據「最小寬度(smallest-width)限定符」來找的,需要注意的是「最小寬度」是不區分方向的,即無論是寬度還是高度,哪一邊小就認為哪一邊是「最小寬度」。所以如果當前裝置最小寬度(以 dp 為單位)為400dp,那麼系統會自動找到對應的values-sw400dp資料夾下的dimens.xml檔案,如圖

獲取裝置最小寬度**,

displaymetrics dm = new displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics(dm);

int heightpixels = dm.heightpixels;

int widthpixels = dm.widthpixels;

float density = dm.density;

float heightdp = heightpixels / density;

float widthdp = widthpixels / density;

float smallestwidthdp;

if(widthdp < heightdp) else

使用:工具:在android studio中安裝screenmatch外掛程式

1.在android studio中安裝screenmatch外掛程式。settings->plugins-screenmatch

2.在專案的預設values資料夾中需要乙份dimens.xml檔案

3.執行生成:

外掛程式安裝好後,在專案的任意目錄或檔案上右鍵,選擇screenmatch選項

成功後res檔案下會有一堆dimens.xml檔案

因為預設生成的是下列最小寬度dp的dimens.xml檔案

384,392,400,410,411,480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365,如果不需要或者需要增加某些dp值的dimens.xml檔案,則需要修改配置檔案,即screenmatch.properties檔案(修改前先刪除之前生成的全部dimens.xml檔案)。

開啟檔案,修改下面的值即可。如下只需要適配384,392,400,410,411的值,不需要適配480,533,592,600,640,662,720,768,800,811,820,960,961,1024,1280,1365的值

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