前言
Android項目中的res(Resources)文件夾是項目的資源配置路徑,Android系統會根據請求的資源:res——>存放文件類型文件目錄+資源限配符——>文件名,簡單流程如下:
接下來會詳細介紹res目錄下的資源文件,以及資源文件對應的資源限定符。
一、資源文件介紹
Android系統res下會提供一些資源的目錄,每種目錄都對應存放不同的資源文件。
資源目錄 | 對應資源目錄存放類型 |
---|---|
animation/ | 用於定義屬性動畫的XML文件 |
anim/ | 定義漸變動畫的XML文件 |
color/ | 用於定義顏色狀態列表 |
drawable/ | 位圖文件(.png、.jpg、 .gif)狀態列表、形狀等 |
mipmap/ | 不同啓動圖標密度的mipmap/用於App的icon、啓動圖片等 |
layout/ | 用於定義用戶界面佈局 |
menu/ | 用於定義應用菜單(選項菜單、上下文菜單或子菜單等) |
raw/ | 原始形式保存的任意文件 |
values/ | 包含字符串、整形數和顏色等 |
xml/ | 可以在運行時調用Resources.getXML()讀取的任意XML文件 |
默認的Android項目res目錄如下,可以根據需要再創建不同類型的資源文件。
二、資源限配符
Android由於大量的不同廠家的設備,爲了更好的適配各種設備。Android系統提供了大量的資源限配符支持各種設備的適配。資源限配符如下:
優先級 | 配置 | 限定符號 |
---|---|---|
1 | MCC | 移動國家代碼,示例:mcc310、mcc310-mnc004、mcc208-mnc00等等 |
2 | 語言和地區 | 語言代碼定義,示例:en、fr、en-rUS、fr-rFR、fr-rCA等等 |
3 | 佈局方向(api-17 | 應用的佈局方向,ldrtl 是指“佈局方向從右到左”。ldltr 是指“佈局方向從左到右”,這是默認的隱式值。 |
4 | smallestWidth(api-13) | 屏幕的基本尺寸,由可用屏幕區域的最小尺寸指定。swdp示例:sw320dp、sw600dp、sw720dp等等 |
5 | 可用寬度 | 指定資源應該使用的最小可用屏幕寬度。wdp示例:w720dp、w1024dp等等 |
6 | 可用高度 | 指定資源應該使用的最小可用屏幕高度。hdp示例:h720dp、h1024dp等等 |
7 | 屏幕尺寸 | small(320x426 dp)、normal(320x470 dp)、large(480x640 dp)、xlarge(720x960 dp) |
8 | 屏幕縱橫比 | long(寬屏)、notlong(非寬屏) |
9 | 屏幕方向 | port、land |
10 | UI 模式 | car(車載手機座)、desk、television、appliancewatch |
11 | 夜間模式 | Night、notnight |
12 | 屏幕像素密度 (dpi) | ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi、nodpi、tvdpi |
13 | 觸摸屏類型 | notouch:設備沒有觸摸屏、finger |
14 | 鍵盤可用性 | keysexposed:設備具有可用的鍵盤、keyshidden、keyssoft |
15 | 主要文本輸入法 | nokeys:設備沒有用於文本輸入的硬按鍵、qwerty、12key |
16 | 導航鍵可用性 | Navexposed、navhidden |
17 | 主要非觸摸導航方法 | Nonav、dpad、trackball、wheel |
18 | 平臺版本(API 級別) | 示例:v3、v4、v7 等等 |
注意: 資源限定符是在不同的系統API基礎之上,不斷地增加。現在列舉的通配符不是所有API版本都支持的,在開發過程中需要注意當前支持的API版本對應的 資源限配符。
三、設備適配詳細流程
通過以上兩點的描述,基本對Android設備的資源文件存放有了詳細的瞭解。不同Android設備在運行時引用資源規則如下:
總結
Android項目中設定的 資源文件+ 限配符主要是更好的適配所有全球各地的各個廠商出產的Android硬件設備,同時還有Android系統API的更新等情況,以上就是簡單的介紹res內資源配置情況。
持續更新中……