ts-resource-access.md 4.2 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')"```的形式,当前$rawfile仅支持Image控件引用图片资源,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。
Z
zengyawen 已提交
9

H
HelloCrease 已提交
10 11
> **说明:**
> 资源描述符不能拼接使用,仅支持普通字符串如`'app.type.name'`。
Z
zengyawen 已提交
12

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

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

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

H
HelloCrease 已提交
26 27 28 29
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 已提交
30

H
HelloCrease 已提交
31 32 33 34
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 已提交
35

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

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

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

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

H
HelloCrease 已提交
46 47 48 49 50 51 52 53 54 55 56 57 58 59

开发者可以通过```“$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 已提交
60
```
H
HelloCrease 已提交
61
## 资源文件示例
Z
zengyawen 已提交
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

color.json文件的内容如下:


```
{
    "color": [
        {
            "name": "color_hello",
            "value": "#ffff0000"
        },
        {
            "name": "color_world",
            "value": "#ff0000ff"
        }
    ]
}
```

float.json文件的内容如下:


```
{
    "float":[
        {
            "name":"font_hello",
            "value":"28.0fp"
        },
	{
            "name":"font_world",
            "value":"20.0fp"
        }
    ]
}
```

string.json文件的内容如下:


```
{
    "string":[
        {
            "name":"string_hello",
            "value":"Hello"
        },
	{
            "name":"string_world",
            "value":"World"
        },
	{
            "name":"message_arrive",
            "value":"We will arrive at %s."
        }
    ]
}
```

plural.json文件的内容如下:


```
{
    "plural":[
        {
            "name":"eat_apple",
            "value":[
                {
                    "quantity":"one",
                    "value":"%d apple"
                },
                {
                    "quantity":"other",
                    "value":"%d apples"
                }
            ]
        }
    ]
}
```

H
HelloCrease 已提交
144
 
145 146 147 148


## 相关实例

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

151
- [`ResourceManager`:资源管理器(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/common/ResourceManager)