Android螢幕適配(二)

2021-07-04 19:58:37 字數 3776 閱讀 9279

一、關於布局適配

1、不要使用絕對布局

2、盡量使用match_parent 而不是fill_parent 。

3、能夠使用權重的地方盡量使用權重(android:layout_weight)

4、如果是純色背景,盡量使用

android

的shape自定義。

5、如果需要在特定解析度下適配,可以在

res目錄上新建

layout-hxw.xml

的資料夾。比如要適配

1080*1800

的螢幕(魅族

mx3採用此解析度)則新建

layout-1800x1080.xml

的資料夾,然後在下面定義布局。

android

系統會優先查詢解析度相同的布局,如果不存在則換使用預設的

layout

下的布局。

二、關於製作

1、關於設計:

設計圖先定下乙個要設計的尺寸,而且盡量採用在目前最流行的螢幕尺寸(比如目前佔螢幕比重比較多的是

480系列,也即是

480*800

或者400*854

,下面的圖示製作也在次基礎上進行比例的換算)上設計。

先了解一下螢幕的級別:

螢幕級別

螢幕密度

比率(相對)

物理大小(英吋)

畫素大小

通常的解析度

ldpi

120

3

0.75

1

120

mdpi

160

4

1

1

160

320*480

hdpi

240

6

1.5

1

240

480*800

xhdpi

320

8

2

1

320

720*1280

xxhdpi

480

12

3

1

480

1080*1800

說明:螢幕級別:

注意螢幕級別是按照密度分級,和畫素沒有關係。如果非要讓密度和畫素扯上關係,則需要乙個參照系,

android

使用mdpi

級別作為標準參照螢幕,也就是說在

320*480

解析度的手機上乙個密度可以容納乙個畫素。然後其他密度級別則在此基礎上進行對比。如果理想情況下,

480*800

的螢幕乙個密度可以容納

1.5個畫素。

物理大小:

單位是英吋而不是畫素,也就說乙個英吋在任何解析度下顯示的大小都是一樣的,但是畫素在密度不同的手機裡面顯示的實際的大小是不一樣的(這就是為什麼

android

手機需要適配的原因)。

然後就是重點。

假設 1

畫素在160

密度下顯示

1英吋,則

1畫素在

240密度基礎上顯示大約

0.67

英吋,在

320密度下顯示

0.5英吋。於是就出現一種情況,在電腦上的乙個畫素,在不同的手機上看實際的大小不一樣。那麼怎麼讓「設計效果」在不同的手機上看起來顯示的區域一樣呢?

還是假設乙個畫素在

160密度下的顯示在乙個密度內,也假設就是一英吋。那麼需要幾個畫素才能在

240密度級別下顯示在一英吋範圍內呢?答案是

1.5個畫素(根據上圖的比率換算)。

了解了這個關係,接下來就是圖示的製作。

2、關於切圖。

關於切圖有幾個建議:

第一,長寬最好是

3的倍數(根據

android

的推薦logo

圖示的大小是48(

mdpi

),72

(hdpi

),96

(xhdpi

)得出的最小公約數)。

第二,長寬最好是偶數。因為奇數在進行等比壓縮的時候可能有問題。

第三,根據上面兩條,如果長寬是

6的倍數最理想。

第四,如果可以拉伸而不改變設計意圖的情況下,比如純色背景,則使用

android

的9path

工具製作成

.9的。

3、關於圖示的適配。

然後接下來的一切就和設計稿沒什麼關係。在切好圖的基礎上,根據螢幕密度、畫素和實際大小的比例關係。假如設計司在

480*800

的解析度下做好了設計圖,並且切好圖,如果你需要適配

720*1280

螢幕,該怎麼做?根據比例,他們的關係是

2:3,於是你需要按照1.5倍

比例製作圖示,比如你在

480*800

的設計稿上切下來乙個

20*20

畫素的圖,那麼你就需要製作乙個等比放大成

30*30

畫素的圖示,這樣同乙個圖示在

480*800

的螢幕和

720*1280

的螢幕上顯示的實際大小才一樣。同理,如果你需要適配

xxhdpi

則需要在

20*20

的基礎上製作乙個等比放大成

40*40

畫素的圖示。

4、關於圖示的目錄,

480*800

切下來的圖我們放在

drawable-hdpi

目錄下,按照

2:3放大的圖示放在

drawable-xhdpi

目錄下,按照

2倍放大的圖示放在

drawable-xxhdpi

目錄下。

android

會根據手機的密度優先查詢對應的目錄的資源, 比如

408*800

解析度下的手機如果密度是

160,則自動載入

drawable-hdpi

這個目錄下的圖示, 如果

720*1280

密度是240

的手機自動載入

drawable-xhdpi

這個目錄下的圖示。如果沒有這個資料夾,則查詢和

240最接近的對應密度資料夾。

三、其它

接下來要說的估計會讓你失望,根據上面的步驟也不能完全解決適配的問題,只能是大概適配,而就算根據上面的步驟大概適配了,實際在手機上的效果也有出入。

比如魅族

mx3的解析度是

1080*1800

,標準情況下密度是

480,但是他的密度大約是

524,和

480接近,也就是會查詢drawable-xxhdpi

這個資源下的檔案。也就是說你在

480*800

解析度下切圖然後按兩倍放大的圖示在這台手機上顯示的效果還是比實際的小。

而另乙個要說的問題是

540*960

或者640*960

,他們的密度很可能是或者接近

240也可能是

320。於是在

480*800

的設計稿上切下來的圖並且進行的適配製作,在這些手機上顯示的實際大小也可能或大或小。

綜上所述,我也只是把我的理解和經驗分享一下,但是並不能完美適配螢幕,僅僅當做拋磚引玉,如果您路過並且看到這份建議,如果你正好有更好的方案能夠進行適配,請不吝賜教。

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