作者介绍
帝心:全网首发HarmonyOS4.0教程(哔哩哔哩)创作者。致力于推广鸿蒙教程开发。
本文简介: Harmony项目资源配置。包括鸿蒙开发使用图片资源,字符串资源,颜色资源,HarmonyOS读取json文件等。
本文介绍项目资源使用。涉及到app入口图标或者通知图标等内容,需要使用模拟器或者真机运行。预览器无法胜任。
0. 图片资源访问
在项目中可将图片资源统一管理的到 src/main/resources/base/media
目录或者 src/main/resources/rawfile
目录中。访问方式分别如下:
// 访问 src/main/resources/base/media 下的图片资源
Image($r('app.media.dixin'))
// 访问 src/main/resources/rawfile 下的图片资源
Image($rawfile("dixin.png"))
1. app图标设置
创建项目后默认图标效果如下
经过分析,设置该项目图标的位置在:src/main/module.json5
文件中 abilities
字段中的 icon
字段和 label
字段
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
}
],
修改图标
准备好待更换的图标,放在指定目录下:src/main/resources/base/media
。
我在本目录下存放了一张名为
dixin.png
的图片。你自行找一个适合做logo图标的效果图。注意不要出现中文或者特殊符合作为名称,许多人的图片从网络上下载的,连名字都不修改直接复制到
media
目录下,因为名字包含特殊字符,导致整个项目运行报错。
修改前文提到的src/main/module.json5
文件中 abilities
字段中的 icon
字段的值为指定图片名即可。
"abilities": [
{
"icon": "$media:dixin",
"label": "$string:EntryAbility_label",
}
],
修改app名称
有了前文修改图标的经验,只需要找到对应设置app名字的文件位置即可。如前文所示,修改$string:EntryAbility_label
资源文件中的内容即可。但是该资源文件指向的内容并未单个文件。分别为如下三个文件:
src/main/resources/en_US/element/string.json
src/main/resources/en_US/element/string.json
src/main/resources/zh_CN/element/string.json
不必挨个修改以上 string.json
文件中的 EntryAbility_label
字段的值。只需要点开任何一个,点击右上角Open editor
即可进入三个文件同步编辑窗口。修改效果如下:
修改图标
和名称
成功,效果如下图:
2. 设置软件通知图标
许多软件都会随着业务场景而具备发送通知功能。如下图所示:
在本示例中,发送通知时,显示的图标为软件图标,并非桌面入口logo图标。如果不设置,默认为初始化的四叶草效果。
一般情况下两个图标会保持一直。设置位置:AppScope/app.json5
文件中的app
字段中对象中的icon
字段值
{
"app": {
"bundleName": "com.dxin.harmonyblog",
"vendor": "example",
"versionCode": 1000000,
"versionName": "1.0.0",
"icon": "$media:dixin",
"label": "$string:app_name"
}
}
3. 颜色资源使用
在开发中需要使用到许多颜色资源,而如果某个颜色数据需要在多处使用。则可配置到 资源文件 src/main/resources/base/element/color.json
中,进行多处共用,使得一次配置,到处使用。同时方便同步修改。
例如:配置该应用所有页面共用的主题色。
{
"color": [
{
"name": "start_window_background",
"value": "#FFFFFF"
},
{
"name": "theme_color",
"value": "#FFC4E9C1"
}
]
}
在页面中使用时,使用 $r('app.color.theme_color')
的方式进行访问
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Column({ space: 30 }) {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
.height('100%')
.backgroundColor($r('app.color.theme_color'))
}
}
4. 读取 json
文件内容
先有一个 json
文件:src/main/resources/rawfile/dixin.json
{
"name": "帝心",
"age": "33",
"sex": "男"
}
在页面中导入即对象。
// 导入即对象
import dixin from "../../resources/rawfile/dixin.json"
@Entry
@Component
struct ResourceUse {
build() {
Column({ space: 30 }) {
Text(dixin.name).fontSize(50) // 帝心
Text(dixin.sex).fontSize(50) // 男
Text(dixin.age).fontSize(50) // 33
}
.width('100%')
.height('100%')
.backgroundColor($r('app.color.theme_color'))
}
}