ts-resource-access.md 4.3 KB
Newer Older
H
HelloCrease 已提交
1
# 资源访问
Z
zengyawen 已提交
2 3


H
HelloCrease 已提交
4
## 访问应用资源
Z
zengyawen 已提交
5

H
HelloCrease 已提交
6
在工程中,通过```"$r('app.type.name')"```的形式引用应用资源。app代表是应用内resources目录中定义的资源;type代表资源类型(或资源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”,name代表资源命名,由开发者定义资源时确定。
Z
zengyawen 已提交
7

H
HelloCrease 已提交
8
引用rawfile下资源时使用```"$rawfile('filename')"```的形式,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。
Z
zengyawen 已提交
9

H
HelloCrease 已提交
10
> **说明:**
S
sienna1128 已提交
11
> 
H
HelloCrease 已提交
12
> 资源描述符不能拼接使用,仅支持普通字符串如`'app.type.name'`。
H
HelloCrease 已提交
13
>
14
> `$r`返回值为Resource对象,可通过[getString](../reference/apis/js-apis-resource-manager.md#getstring) 方法获取对应的字符串。
Z
zengyawen 已提交
15

H
HelloCrease 已提交
16
在xxx.ets文件中,可以使用在resources目录中定义的资源。
Z
zengyawen 已提交
17

H
HelloCrease 已提交
18 19 20 21 22
```ts
Text($r('app.string.string_hello'))
    .fontColor($r('app.color.color_hello'))
    .fontSize($r('app.float.font_hello'))
}
Z
zengyawen 已提交
23

H
HelloCrease 已提交
24 25 26 27
Text($r('app.string.string_world'))
    .fontColor($r('app.color.color_world'))
    .fontSize($r('app.float.font_world'))
}
Z
zengyawen 已提交
28

H
HelloCrease 已提交
29 30 31 32
Text($r('app.string.message_arrive', "five of the clock")) // 引用string资源,$r的第二个参数用于替换%s
    .fontColor($r('app.color.color_hello'))
    .fontSize($r('app.float.font_hello'))
}
Z
zengyawen 已提交
33

H
HelloCrease 已提交
34 35 36 37
Text($r('app.plural.eat_apple', 5, 5))       // plural$r引用,第一个指定plural资源,第二个参数指定单复数的数量,此处第三个数字为对%d的替换
    .fontColor($r('app.color.color_world'))
    .fontSize($r('app.float.font_world'))
}
Z
zengyawen 已提交
38

H
HelloCrease 已提交
39
Image($r('app.media.my_background_image'))  // media资源的$r引用
Z
zengyawen 已提交
40

H
HelloCrease 已提交
41
Image($rawfile('test.png'))                 // rawfile$r引用rawfile目录下图片
Z
zengyawen 已提交
42

H
HelloCrease 已提交
43 44 45
Image($rawfile('newDir/newTest.png'))       // rawfile$r引用rawfile目录下图片
```
## 访问系统资源
Z
zengyawen 已提交
46

H
HelloCrease 已提交
47
系统资源包含色彩、圆角、字体、间距、字符串及图片等。通过使用系统资源,不同的开发者可以开发出具有相同视觉风格的应用。
Z
zengyawen 已提交
48

H
HelloCrease 已提交
49 50 51 52 53 54 55 56 57 58 59 60 61 62

开发者可以通过```“$r('sys.type.resource_id')”```的形式引用系统资源。sys代表是系统资源;type代表资源类型,可以取“color”、“float”、“string”、“media”;resource_id代表资源id。

```ts
Text('Hello')
    .fontColor($r('sys.color.ohos_id_color_emphasize'))
    .fontSize($r('sys.float.ohos_id_text_size_headline1'))
    .fontFamily($r('sys.string.ohos_id_text_font_family_medium'))
    .backgroundColor($r('sys.color.ohos_id_color_palette_aux1'))
Image($r('sys.media.ohos_app_icon'))
    .border({color: $r('sys.color.ohos_id_color_palette_aux1'), radius: $r('sys.float.ohos_id_corner_radius_button'), width: 2})
    .margin({top: $r('sys.float.ohos_id_elements_margin_horizontal_m'), bottom: $r('sys.float.ohos_id_elements_margin_horizontal_l')})
    .height(200)
    .width(300)
Z
zengyawen 已提交
63
```
H
HelloCrease 已提交
64
## 资源文件示例
Z
zengyawen 已提交
65 66 67 68

color.json文件的内容如下:


H
HelloCrease 已提交
69
```json
Z
zengyawen 已提交
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
{
    "color": [
        {
            "name": "color_hello",
            "value": "#ffff0000"
        },
        {
            "name": "color_world",
            "value": "#ff0000ff"
        }
    ]
}
```

float.json文件的内容如下:


H
HelloCrease 已提交
87
```json
Z
zengyawen 已提交
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
{
    "float":[
        {
            "name":"font_hello",
            "value":"28.0fp"
        },
	{
            "name":"font_world",
            "value":"20.0fp"
        }
    ]
}
```

string.json文件的内容如下:


H
HelloCrease 已提交
105
```json
Z
zengyawen 已提交
106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
{
    "string":[
        {
            "name":"string_hello",
            "value":"Hello"
        },
	{
            "name":"string_world",
            "value":"World"
        },
	{
            "name":"message_arrive",
            "value":"We will arrive at %s."
        }
    ]
}
```

plural.json文件的内容如下:


H
HelloCrease 已提交
127
```json
Z
zengyawen 已提交
128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
{
    "plural":[
        {
            "name":"eat_apple",
            "value":[
                {
                    "quantity":"one",
                    "value":"%d apple"
                },
                {
                    "quantity":"other",
                    "value":"%d apples"
                }
            ]
        }
    ]
}
```

H
HelloCrease 已提交
147
 
148 149 150 151


## 相关实例

152
针对访问应用资源,有以下相关实例可供参考:
153

154
- [`ResourceManager`:资源管理器(ArkTS)(API8)](https://gitee.com/openharmony/applications_app_samples/tree/master/common/ResourceManager)