Android學習 螢幕適配

2021-09-21 13:46:36 字數 2321 閱讀 5225

螢幕尺寸:

android中的所有實際的螢幕r寸分為四個廣義大小:小,正常,大,和超大。(small, normal, large, and extra-large)

螢幕畫素密度:

螢幕的物理區域內的畫素的數量:通常被稱為dpi (每英吋點數)

android中的所有實際的螢幕密度分為六個廣義密度:低,中,高,超高,超超高,超超超高。low, medium, high, extra-high, extra-extra-high, and extra-extra-extra-high.

方向:

從使用者的角度看到的螢幕方向。一般為橫向或縱向,即螢幕的寬高比。

解析度:

在螢幕上的物理畫素的總數。

密度無關畫素(dp) :

虛擬畫素單元。在定義u布局的時候,你應當使用與密度無關的方式來表示布局尺寸或者位置。

螢幕支援的範圍:

android把實際的螢幕尺寸的密度分成如下範圍:

一組(四個)廣義大小:小,正常,大和超大

一組(六種)廣義密度:

ldpi(low) ~120dpi

mldpi(medium) ~160dpi

hldpi(high) ~240dpi

xhldpi(extra-high) ~320dpi

xxhldpi(extra-extra-high) ~480dpi

***hldpi(extra-extra-extra-high) ~640dpi

android中適配是一件很棘手的事情,比如一張同樣大小的在不同螢幕上顯示的大小是不一樣的。ppi(pixel per inch)名詞,就是每英吋的距離畫素點的個數。

例如:hvga屏320*480,一般是3.5寸,計算點密度為√(3202+4802)/3.5=164,約等於160。

displaymetrics displaymetrics=new displaymetrics();

getwindowmanager().getdefaultdisplay().getmetrics(displaymetrics);

//獲取螢幕寬高

int heightpixels=displaymetrics.heightpixels;

int widthpixels=displaymetrics.widthpixels;

float density=displaymetrics.density;

int dpi=displaymetrics.densitydpi;

log.i("heightpixels", string.valueof(heightpixels));

log.i("widthpixels", string.valueof(widthpixels));

log.i("density", string.valueof(density));

log.i("dpi", string.valueof(dpi));

我們已經解決了資源的適配問題,但是的大小不同勢必會造成布局的差異,如果使用乙個統一的布局檔案,可能會造成資源無法完整顯示在螢幕內,所以對於這種問題,解決方法是建立不同的layout資料夾, 對於不同螢幕的解析度,書寫其專用的xml檔案。

多個layout資料夾在命名上有相應規則,以解析度480x854為例, 需要建立480x854畫素的layout資料夾,命名: layout-854x480

有兩點需要注意:

1、大數(854) 必須在前,否則會報錯;

2、 兩個數字之間的符號是小寫英文本母"x", 不是乘號。

系統會根據機器的解析度來分別到這幾個資料夾裡面去找對應的布局檔案。

為每個drawable目錄都生成對應的版本,較多的話會無形增加應用的大小,假設我們在drawable-hdpi (對應的ppi為160ppi)目錄下存放了乙個100x100的,那麼當需要在320ppi的android裝置.上進行顯示時,android系 統會

將自動將進行處理生成乙個200x200的顯示到裝置上,那麼他們占用的空間大小分別為100/160 =3/5 inch 200/320 = 3/5 inch可以看出他們占用的長和寬都是一樣的這種自動縮放的優點是只需要- .張就能適應各種ppi型別的螢幕。缺點是當對100x100的進行變換成200x200的時肯能會造成的不清晰。

建議是將比較重要的資源提供多個版本(當android設 備和自己的ppi相對應的drawable下找到想要的資源時,就不會再到其他目錄需找資源)。不是很重要的資源儲存乙個版本,讓系統根據自己的ppi自己對進行適當的縮放顯示。

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