HarmonyOS多设备资源文件管理以及resources资源引用方式
官网地址:文档中心
HarmonyOS 提供了一套完善的资源文件管理机制,支持多设备适配,确保应用在不同设备上能够自动选择合适的资源文件,提升用户体验。以下是关键方法和实现方式:
资源文件分类与适配
资源文件按照设备类型、屏幕密度、语言等维度进行分类,存放在 resources
目录下。例如:
└──entry/src/main/resources // 资源区├──base // 默认存在的目录 │ ├──element │ │ ├──color.json // 颜色资源│ │ ├──float.json // 数字资源│ │ └──string.json // 字符串资源│ ├──media // 媒体资源│ └──profile // 路由资源├──en_US // 限定词目录示例,需要开发者自行创建 ├──zh_CN // 限定词目录示例,需要开发者自行创建 └──rawfile // 原始文件目录
资源限定词的使用:
base目录与限定词目录下面可以创建资源组目录(包括element、media等),用于存放特定类型的资源文件
资源引用方式
在代码或布局文件中,通过 $r('app.type.name')
引用资源,系统会根据当前设备环境自动匹配最合适的资源文件。例如:
Text($r('app.string.message_notification')).fontSize($r('app.float.font_world'))
注意 app.string string是文件名,同理color,float。
通过合理组织资源文件和利用 HarmonyOS 的自动匹配机制,开发者可以高效实现多设备适配。
创建资源目录和资源文件
在resources目录右键菜单选择“New > Resource File”,可同时创建资源目录和资源文件,文件默认创建在base目录的对应资源组中。如果选择了限定词,则会按照命名规范自动生成限定词和资源组目录,并将文件创建在限定词目录中。
创建的目录名自动生成,格式固定为“限定词.资源组”,例如:创建一个限定词为dark的element目录,自动生成的目录名称为“dark/element”。
创建资源目录
在resources目录右键菜单选择“New > Resource Directory”,可创建资源目录,默认创建的是base目录。如果选择了限定词,则会按照命名规范自动生成限定词和资源组目录。确定限定词后,选择资源组类型,当前资源组类型支持Element、Media、Profile三种,创建后生成资源目录。
创建资源文件
在资源组目录(element、media、profile)的右键菜单选择“New > XXX Resource File”,可创建对应资源组目录的资源文件。例如,在element目录下可新建Element Resource File。
示例
以创建中文和英文字符串资源文件为例,说明如何创建不同限定词的资源。
在resources目录右键菜单选择“New > Resource File”,File name填写为string_sample,Resource type选择Element,Root Element选择string,Available qualifiers选中Locale,在右侧的语言列表中选择zh,地区列表中选择CN,将会在resources目录下创建zh_CN/element/string_sample.json文件。
同理,语言选择en,地区选择US,创建en_US/element/string_sample.json文件。