resources目录
应用的资源文件(字符串、图片、音频等)统一存放于resources
目录下,便于开发者使用和维护。resources
目录包括两大类目录,一类为base
目录与限定词目录,另一类为rawfile
目录
资源目录示例:
resources
|---base // 默认存在的目录
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---en_GB-vertical-car-mdpi // 限定词目录示例,需要开发者自行创建
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---rawfile // 默认存在的目录
resources
目录分类
分类 | base目录与限定词目录 | rawfile目录 |
---|---|---|
组织形式 | 按照两级目录形式来组织,目录命名必须符合规范,以便根据设备状态去匹配相应目录下的资源文件。一级子目录为 base目录和 限定词目录。base目录是默认存在的目录。当应用的resources资源目录中没有与设备状态匹配的限定词目录时,会自动引用该目录中的资源文件。限定词目录需要开发者自行创建。目录名称由一个或多个表征应用场景或设备特征的限定词组合而成,具体要求参见限定词目录。二级子目录为资源目录,用于存放字符串、颜色、布尔值等基础元素,以及媒体、动画、布局等资源文件,具体要求参见资源组目录)。 | 支持创建多层子目录,目录名可以自定义,文件夹内可以自由放置各类资源文件。rawfile目录的文件不会根据设备状态去匹配不同的资源。 |
编译方式 | 目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。 | 目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件 ID。 |
引用方式 | 通过文件类型(type)和资源名称(name)的组合引用。Java 文件采用:ResourceTable.type****name。特别地,如果引用的是系统资源,则采用:ohos.global.systemres.ResourceTable.typename。XML 文件采用: |
通过指定文件路径和文件名来引用。例如:“resources/rawfile/example.js”。 |
限定词目录
限定词目录可以由一个或多个表征应用场景或设备特征的限定词组合而成,包括语言、文字、国家或地区、横竖屏、设备类型和屏幕密度等六个维度。
限定词目录的命名要求
语言文字国家或地区-横竖屏-设备类型-屏幕密度,例如:zh_Hant_CN、zh_CN-car-ldpi。
资源组目录
base目录与限定词目录下面可以创建资源组目录(包括element
元素资源、media
媒体资源,包括图片、音频、视频等非文本格式的文件、animation
动画资源、layout
布局资源、graphic
可绘制资源、profile
其他类型文件,以原始文件形式保存),用于存放特定类型的资源文件。
资源文件示例
boolean.json
示例
{
"boolean":[
{
"name":"boolean_1",
"value":true
},
{
"name":"boolean_ref",
"value":"$boolean:boolean_1"
}
]
}
color.json
示例
{
"color":[
{
"name":"red",
"value":"#ff0000"
},
{
"name":"red_ref",
"value":"$color:red"
}
]
}
float.json
示例
{
"float":[
{
"name":"float_1",
"value":"30.6"
},
{
"name":"float_ref",
"value":"$float:float_1"
},
{
"name":"float_px",
"value":"100px"
}
]
}
intarray.json
示例
{
"intarray":[
{
"name":"intarray_1",
"value":[
100,
200,
"$integer:integer_1"
]
}
]
}
strarray.json
示例
{
"strarray":[
{
"name":"size",
"value":[
{
"value":"small"
},
{
"value":"$string:hello"
},
{
"value":"large"
},
{
"value":"extra large"
}
]
}
]
}
string.json
示例
{
"string":[
{
"name":"hello",
"value":"hello base"
},
{
"name":"app_name",
"value":"my application"
},
{
"name":"app_name_ref",
"value":"$string:app_name"
},
{
"name":"app_sys_ref",
"value":"$ohos:string:request_location_reminder_title"
}
]
}
网友评论