当前位置: 首页 > news >正文

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文件。

http://www.dtcms.com/a/321171.html

相关文章:

  • 交换机100G模块远距离连接踩坑记录
  • 强制用户更改WordPress密码的重要性及实现方法
  • Pinterest视觉营销自动化:亚矩阵云手机实例与多分辨率适配技术
  • 在 Elasticsearch/Kibana (ELK Stack) 中搜索包含竖线 (|)​​ 这类特殊字符的日志消息 (msg 字段) ​确实需要转义
  • proteus实现简易DS18B20温度计(stm32)
  • python学智能算法(三十五)|SVM-软边界拉格朗日方程乘子非负性理解
  • 阿里云服务linux安装单机版
  • Java 之 设计模式
  • Scratch编程:枪战游戏(附源码)
  • C++信息学奥赛一本通-第一部分-基础一-第3章-第1节
  • 【深度学习新浪潮】近三年高精度大规模三维实景重建研究进展(2022-2025)
  • Java零散知识点
  • Webpack 核心配置与最佳实践指南
  • cAdvisor 容器监控软件学习
  • 移动端app专项测试
  • 园区应急调度系统的核心功能
  • 塔罗耳语:免费在线AI塔罗牌占卜工具
  • 1-10〔 OSCP ◈ 研记 〕❘ 信息收集▸主动采集H:SNMP基础
  • WinForm利用 RichTextBox组件实现输出各种颜色字体日志信息
  • MMBFJ310LT1G一款N沟道JFE 晶体管适用于高频放大器和振荡器等射频应用MMBFJ310LT1
  • STM32CubeMX(十二)SPI驱动W25Qxx(Flash)
  • VUE+SPRINGBOOT从0-1打造前后端-前后台系统-视频列表与视频播放
  • 【嵌入式C语言】
  • C语言:结构体
  • mac电脑解决在不同项目需要频繁手动切换node版本的困扰
  • Autosar AP功能组状态和模型进程是否预定义后不改变了?
  • Mac 电脑放在环境变量中的通用脚本
  • 从浅拷贝到深拷贝:C++赋值运算符重载的核心技术
  • SITIME汽车时钟发生器Chorus保障智能汽车安全
  • 《告别Bug!GDB/CGDB调试实战指南》