鴻蒙OS 資源文件分類

2020-10-20 15:36 更新

resources目錄

應(yīng)用的資源文件(字符串、圖片、音頻等)統(tǒng)一存放于resources目錄下,便于開發(fā)者使用和維護(hù)。resources目錄包括兩大類目錄,一類為base目錄與限定詞目錄,另一類為 rawfile 目錄,詳見表1。

資源目錄示例:

resources
|---base  // 默認(rèn)存在的目錄
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|---en_GB-vertical-car-mdpi // 限定詞目錄示例,需要開發(fā)者自行創(chuàng)建   
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|---rawfile  // 默認(rèn)存在的目錄

表1 resources目錄分類

分類 base目錄與限定詞目錄 rawfile目錄
組織形式 按照兩級(jí)目錄形式來組織,目錄命名必須符合規(guī)范,以便根據(jù)設(shè)備狀態(tài)去匹配相應(yīng)目錄下的資源文件。
一級(jí)子目錄為 base目錄和 限定詞目錄。base目錄是默認(rèn)存在的目錄。當(dāng)應(yīng)用的resources資源目錄中沒有與設(shè)備狀態(tài)匹配的限定詞目錄時(shí),會(huì)自動(dòng)引用該目錄中的資源文件。限定詞目錄需要開發(fā)者自行創(chuàng)建。目錄名稱由一個(gè)或多個(gè)表征應(yīng)用場(chǎng)景或設(shè)備特征的限定詞組合而成,具體要求參見限定詞目錄。
二級(jí)子目錄為資源目錄,用于存放字符串、顏色、布爾值等基礎(chǔ)元素,以及媒體、動(dòng)畫、布局等資源文件,具體要求參見資源組目錄)。
支持創(chuàng)建多層子目錄,目錄名稱可以自定義,文件夾內(nèi)可以自由放置各類資源文件。
rawfile目錄的文件不會(huì)根據(jù)設(shè)備狀態(tài)去匹配不同的資源。
編譯方式 目錄中的資源文件會(huì)被編譯成二進(jìn)制文件,并賦予資源文件ID。 目錄中的資源文件會(huì)被直接打包進(jìn)應(yīng)用,不經(jīng)過編譯,也不會(huì)被賦予資源文件 ID。
引用方式 通過文件類型(type)和資源名稱(name)的組合引用。
Java 文件采用:ResourceTable.*type*_****name。特別地,如果引用的是系統(tǒng)資源,則采用:ohos.global.systemres.ResourceTable.*type*_*name*
XML 文件采用:$*type*:*name*。特別地,如果引用的是系統(tǒng)資源,則采用:$ohos:*type*:*name*。
通過指定文件路徑和文件名來引用。
例如:“resources/rawfile/example.js”。

限定詞目錄

限定詞目錄可以由一個(gè)或多個(gè)表征應(yīng)用場(chǎng)景或設(shè)備特征的限定詞組合而成,包括語言、文字、國家或地區(qū)、橫豎屏、設(shè)備類型和屏幕密度等六個(gè)維度,限定詞之間通過下劃線(_)或者中劃線(-)連接。開發(fā)者在創(chuàng)建限定詞目錄時(shí),需要掌握限定詞目錄的命名要求以及與限定詞目錄與設(shè)備狀態(tài)的匹配規(guī)則。

限定詞目錄的命名**要求**

  • 限定詞的組合順序:語言_文字_國家或地區(qū)-橫豎屏-設(shè)備類型-屏幕密度。開發(fā)者可以根據(jù)應(yīng)用的使用場(chǎng)景和設(shè)備特征,選擇其中的一類或幾類限定詞組成目錄名稱。

  • 限定詞的連接方式:語言、文字、國家或地區(qū)之間采用下劃線(_)連接,除此之外的其他限定詞之間均采用中劃線(-)連接。

例如:zh_Hant_CN、zh_CN-car-ldpi。

  • 限定詞的取值范圍:每類限定詞的取值必須符合表2中的條件,否則,將無法匹配目錄中的資源文件。

表2 限定詞取值要求

限定詞類型 含義與取值說明
語言 表示設(shè)備使用的語言類型,由 2個(gè)小寫字母組成。
例如:zh表示中文,en表示英語。
詳細(xì)取值范圍,參見 ISO 639-1(ISO 制定的語言編碼標(biāo)準(zhǔn))。
文字 表示設(shè)備使用的文字類型,由 1個(gè)大寫字母(首字母)和 3個(gè)小寫字母組成。
例如:Hans 表示簡體中文,Hant 表示繁體中文。
詳細(xì)取值范圍,參見 ISO 15924(ISO 制定的文字編碼標(biāo)準(zhǔn))。
國家或地區(qū) 表示用戶所在的國家或地區(qū),由 2~3個(gè)大寫字母或者 3個(gè)數(shù)字組成。
例如:CN表示中國,GB表示英國。詳細(xì)取值范圍,參見 ISO 3166-1(ISO 制定的國家和地區(qū)編碼標(biāo)準(zhǔn))。
橫豎屏 表示設(shè)備的屏幕方向,取值如下:
vertical:豎屏
horizontal:橫屏
設(shè)備類型 表示設(shè)備的類型,取值如下:
car:車機(jī)
tv:智慧屏
wearable:智能穿戴
屏幕密度 表示設(shè)備的屏幕密度(單位為dpi),取值如下:
sdpi:表示小規(guī)模的屏幕密度(Small-scale Dots Per Inch),適用于120dpi及以下的設(shè)備。
mdpi:表示中規(guī)模的屏幕密度(Medium-scale Dots Per Inch),適用于120dpi~160dpi的設(shè)備。
ldpi:表示大規(guī)模的屏幕密度(Large-scale Dots Per Inch),適用于160dpi~240dpi的設(shè)備。
xldpi:表示特大規(guī)模的屏幕密度(Extra Large-scale Dots Per Inch),適用于240dpi~320dpi的設(shè)備。
xxldpi:表示超大規(guī)模的屏幕密度(Extra Extra Large-scale Dots Per Inch),適用于320dpi~480dpi的設(shè)備。
xxxldpi:表示超特大規(guī)模的屏幕密度(Extra Extra Extra Large-scale Dots Per Inch),適用于480dpi~640dpi的設(shè)備。

限定詞目錄與設(shè)備狀態(tài)的匹配規(guī)則

  • 在為設(shè)備匹配對(duì)應(yīng)的資源文件時(shí),限定詞目錄匹配的優(yōu)先級(jí)從高到低依次為:區(qū)域(語言_文字_國家或地區(qū))> 橫豎屏 > 設(shè)備類型 > 屏幕密度。
  • 如果限定詞目錄中包含語言、文字、橫豎屏、設(shè)備類型限定詞,則對(duì)應(yīng)限定詞的取值必須與當(dāng)前的設(shè)備狀態(tài)完全一致,該目錄才能夠參與設(shè)備的資源匹配。例如,限定詞目錄“zh_CN-car-ldpi”不能參與“en_US”設(shè)備的資源匹配。

資源組目錄

base目錄與限定詞目錄下面可以創(chuàng)建資源組目錄(包括element、mediaanimation、layout、graphic、profile),用于存放特定類型的資源文件,詳見表3。

表3 資源組目錄 說明

資源組目錄 目錄說明 資源文件
element 表示元素資源,以下每一類數(shù)據(jù)都采用相應(yīng)的 JSON 文件來表征。
boolean,布爾型
color,顏色
float,浮點(diǎn)型
intarray,整型數(shù)組
integer,整型
pattern,樣式
plural,復(fù)數(shù)形式
strarray,字符串?dāng)?shù)組
string,字符串
element目錄中的文件名稱建議與下面的文件名保持一致。
每個(gè)文件中只能包含同一類型的數(shù)據(jù)。
boolean.json 
color.json 
float.json 
intarray.json
 integer.json 
pattern.json  
plural.json 
strarray.json
 string.json
media 表示媒體資源,包括圖片、音頻、視頻等非文本格式的文件。 文件名可自定義,例如:icon.png。
animation 表示動(dòng)畫資源,采用 XML 文件格式。 文件名可自定義,例如:zoom_in.xml。
layout 表示布局資源,采用 XML 文件格式。 文件名可自定義,例如:home_layout.xml
graphic 表示可繪制資源,采用 XML 文件格式。 文件名可自定義,例如:notifications_dark.xml。
profile 表示其他類型文件,以原始文件形式保存。 文件名可自定義。

系統(tǒng)資源文件

目前支持的系統(tǒng)資源文件詳見表4。

表4 系統(tǒng)資源文件說明

系統(tǒng)資源名稱 含義 類型
ic_app 表示 HarmonyOS 應(yīng)用的默認(rèn)圖標(biāo)。 媒體
request_location_reminder_title 表示“請(qǐng)求使用設(shè)備定位功能”的提示標(biāo)題。 字符串
request_location_reminder_content 表示“請(qǐng)求使用設(shè)備定位功能”的提示內(nèi)容,即:請(qǐng)?jiān)谙吕旖輽诖蜷_"位置信息"開關(guān)。 字符串
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)