在適配不同的屏幕時,主要針對的是不同設備的尺寸大小和分辨率、同一設備的橫屏和豎屏。
尺寸大小普遍的分為4類:small(小尺寸)、normal(普通尺寸)、large(大尺寸)、xlarge(超大尺寸)
分辨率普遍分為4類:ldpi(低精度)、mdpi(中精度)、hdpi(高精度)、xhdpi(超高精度)
與適配不同區域的語言類似,在APP中應該包含一些所需要的可選資源,針對不同的屏幕聲明對應的UI布局資源layout和圖片資源bitmap,然后將這些可選的資源存放在獨立的對應的目錄中。
根據所需要支持的屏幕尺寸大小創建唯一的xml文件,每一種資源文件存放在相應的資源目錄中,資源目錄以layout-<屏幕尺寸大小>命名。例如,超大尺寸屏幕目錄layout-xlarge,針對超大尺寸屏幕有一資源文件activity_main.xml,那么該XML文件就應該存放在res/layout-xlarge/目錄中。

在程序運行時,Android會根據屏幕尺寸的大小自動的測量layout文件,確保不同屏幕尺寸的XML文件存放于對應的目錄中,并且XML文件要具有唯一性,不同目錄下的XML文件 文件名 相同,內容不同。
在activity中直接引用資源文件即可:

支持橫屏尺寸的layout資源:

為4中普遍存在的分辨率提供對應的圖片資源bitmap,根據原始的矢量圖片資源,按以下比例生成不同密度的圖像:
ldpi:0.75
mdpi:1.0(這個是標準)
hdpi:1.5
xhdpi:2.0
也就是說,如果針對中精度mdpi的圖片為48 X 48,那么低精度ldpi的圖片為36 X 36,高精度hdpi的圖片為72 X 72,超高精度的圖片為96 X 96,然后將圖片存入對應的mipmap資源目錄中:

當使用@mipmap/ic_launcher.png引用圖片資源時,系統將根據對應設備屏幕的分辨率選擇合適的圖片資源bitmap。
適配不同的系統版本,請關注我的下一篇文章---APP兼容不同的設備之適配不同的系統版本
新聞熱點
疑難解答