Android解析度適配layout布局的問題

2021-07-10 16:13:15 字數 1795 閱讀 6395

android3.0之前,適配指定解析度,將layout資料夾做如下命名:

layout  layout-1024x768   layout-1024x600   layout-1280x768 

android3.0以後,需將高度減去48畫素,即底部狀態列的高度:

layout  layout-1024x720   layout-1024x552   layout-1280x720 

橫屏版本的話,中間加上land,例如: layout-land-1024x720

但是需要注意

layout這個原來的資料夾及資源一定要存在,否則會出現錯誤

同時在命名layout資料夾時,大數放在小數的前面,否則會報錯

關於系統的資源配置的目錄(我只列出一些大概,預設專案會有一些資源配置目錄)

android系統支援多配置資源檔案,我們可以追加新的資源目錄到你的android專案中。命名規範: 資源名字-限制符

layout

預設中等螢幕

layout-small

小螢幕layout-large

大螢幕layout-

xlarge

特大螢幕

layout-land

橫屏layout-port

豎屏drawable

預設中等密度

drawable-hdpi

高密度 ~240dpi

drawable-mdpi

中等密度 160dpi

drawable-xhdpi

更高密度 ~320dpi

drawable-nodpi

所有密度資源,無論什麼密度螢幕都會適配。

drawable-tvdpi

介於mdpi~hdpi 約213dpi 主要應用在電視。

注:如果沒有指定橫屏或豎屏,則上面的布局和點陣圖都適配橫豎屏。如果要指定橫屏,例如:drawable-land-hdpi豎屏drawable-port-hdpi,還有關鍵是drawable-xlarge和layout-xlarge,對api level都要求在9之上,等於說,你用android2.2系統的平板或者手機根本不匹配layout-xlarge。因為api level是8。drawable-tvadpi這個api等級需要13以上。

其實上面的layout-large這個目錄其實是個範圍。當系統根據當前螢幕的大小和密度,決定程式應該匹配那個目錄。你也可以單獨定製某些不符合谷歌標準的山寨版layout-l024x600(中間的符合是英文下的x字母),其中1024和600的單位是dp。你可以根據你裝置的解析度和密度,來判斷你的裝置需要定義那個檔案。

但是,官方推薦使用尺寸來表示資源layout-large,不推薦使用解析度layout-1024*600。

建議大家多看文件,官方說明:

xlarge screens are at least 960dp x 720dp

large screens are at least 640dp x 480dp

normal screens are at least 470dp x 320dp

small screens are at least 426dp x 320dp

上面是定義廣義大小布局資源適配的乙個範圍,大家可以根據自己的裝置知道系統會匹配那個檔案的布局。

如果手上有個山寨華為的賣的比較火的mediapad,大家知道解析度1280*800 密度尺寸7寸

通過勾股定了和解析度可以得出其密度為215.69。然後根據dp=px/(dpi/160),可以得出個範圍593.471。所以這個裝置系統會匹配layout-large這個資源布局檔案。

Android解析度常識 多解析度適配

螢幕大小 以螢幕對角線的物理長度來衡量螢幕的大小 解析度 螢幕中所有物理畫素點數。如1920x1080,就表示寬方向有1920個畫素,高方向有1080個畫素,整個螢幕有2073600個畫素。螢幕密度 dpi dots per inch 即畫素密度,每英吋面積上存在多少個畫素。160dpi表示單位面積...

android多解析度適配

前一階段開發android專案,由於客戶要求進行多解析度適配,能夠支援國內主流的解析度手機。因此經過了幾次開發走了很多彎路,目前剛剛領略了android多解析度適配的一些方法。先介紹一下所走的彎路,由於android的布局檔案存放在res的layout中,可以根據不同的手機解析度指定特定的layou...

Android 多解析度適配

標籤 android 適配多解析度 布局檔案 layout 2014 05 28 15 18 9946人閱讀收藏 舉報 android 3 前一階段開發android專案,由於客戶要求進行多解析度適配,能夠支援國內主流的解析度手機。因此經過了幾次開發走了很多彎路,目前剛剛領略了android多解析度...