鸿蒙开发理论基础——资源分类与访问

本文详细解释了鸿蒙应用开发中资源管理的关键概念,包括资源的分类(如AppScope下的resources目录结构),以及如何通过$r()函数访问不同类型的资源,如strings、colors、fonts和媒体资源。
摘要由CSDN通过智能技术生成

今天我们来聊一聊鸿蒙开发中必须要搞懂的资源问题。在APP开发中,资源是一个很重要的东东。在不同的设备或配置中,我们往往需要加载不同的资源以达到个性化的适配。例如:颜色、字体、间距、图片等。

这些一般不会在代码里面写死,而是做成资源文件。根据需要读取即可。

资源的分类

一般来说,鸿蒙应用中的资源一般是存放在AppScope下的resources目录。资源目录的示例如下所示,base目录、限定词目录、rawfile目录称为资源目录,element、media、profile称为资源组目录。

用一张图概括:

图片

注意:所有的element、media、profile目录下只能存放文件,无法再创建子目录,否则编译会报错

资源的访问

rawfile目录下的文件,请通过"$rawfile('filename')"形式引用。其他目录下的文件,请通过"$r('app.type.name')"形式引用。所有的资源参数都不需要/开头。

一般$r的参数“app.type.name”中:

app是表示base目录,如果还存在zh_CN或en_US目录时,则会优先去zh_CN或en_US两个目录寻找资源,找不到才会去base中寻找。

type则表示element、media、profile中的一个。

name则表示资源的文件名称。

下面举一些例子:

Text($r('app.string.string_hello'))
  .fontColor($r('app.color.color_hello'))
  .fontSize($r('app.float.font_hello'))

Text($r('app.string.string_world'))
  .fontColor($r('app.color.color_world'))
  .fontSize($r('app.float.font_world'))

// 引用string.json资源。Text中$r的第一个参数指定string资源,第二个参数用于替换string.json文件中的%s。
// 如下示例代码value为"We will arrive at five of the clock"。
Text($r('app.string.message_arrive', "five of the clock"))
  .fontColor($r('app.color.color_hello'))
  .fontSize($r('app.float.font_hello'))

// 引用plural$资源。Text中$r的第一个指定plural资源,第二个参数用于指定单复数(在中文,单复数均使用other。在英文,one:代表单数,取值为1;other:代表复数,取值为大于等于1的整数),第三个参数用于替换%d
// 如下示例代码为复数,value为"5 apples"。
Text($r('app.plural.eat_apple', 5, 5))
  .fontColor($r('app.color.color_world'))
  .fontSize($r('app.float.font_world'))

Image($r('app.media.my_background_image'))  // media资源的$r引用

Image($rawfile('test.png'))                 // rawfile$r引用rawfile目录下图片

Image($rawfile('newDir/newTest.png'))       // rawfile$r引用rawfile目录下图片

怎么样?学会了吗?是不是很简单?

关于菁英老猎人


    菁英老猎人拥有12+年的软件开发经验,一直专注于大前端领域,对原生APP开发、混合APP开发和鸿蒙APP开发都有较深入的研究,曾使用cordova、uni-app、React-Native、Flutter做过大量的项目,现在开始研究鸿蒙应用开发,擅长对APP开发的相关知识深入浅出。关注我,带你快速、扎实的学习鸿蒙应用开发。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值