HarmonyOS 鸿蒙Next base目录下资源文件读取

发布于 1周前 作者 eggper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next base目录下资源文件读取 应用的资源文件(字符串、图片、音频等)统一存放于resources目录下,便于开发者使用和维护。resources目录包括两大类目录,一类为base目录与限定词目录,另一类为rawfile目录

资源目录示例:

resources
|---base // 默认存在的目录
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---en_GB-vertical-car-mdpi // 限定词目录示例,需要开发者自行创建
| |---element
| | |---string.json
| |---media
| | |---icon.png
|---rawfile // 默认存在的目录

表1 resources目录分类

分类 base目录与限定词目录 rawfile目录
组织形式 按照两级目录形式来组织,目录命名必须符合规范,以便根据设备状态去匹配相应目录下的资源文件。 支持创建多层子目录,目录名称可以自定义,文件夹内可以自由放置各类资源文件。rawfile目录的文件不会根据设备状态去匹配不同的资源。
编译方式 目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。 目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件ID。
引用方式 通过指定资源类型(type)和资源名称(name)来引用,详见资源文件的引用方法 通过指定文件路径和文件名来引用,详见资源文件的引用方法

这里主要讨论base目录下Media文件的访问

得到Resource输入流,如下:

Resource resource;
try {
    resource=getResourceManager().getResource(ResourceTable.Media_22);
} catch (IOException e) {
    e.printStackTrace();
} catch (NotExistException e) {
    e.printStackTrace();
}

这样就得到了Resource输入流,Resource输入流是继承自InputStream的,也就是能用InputStream的地方都可以用Resource,如下例:

ImageSource imageSource=ImageSource.create(resource,null);
PixelMap pixelMap=imageSource.createPixelmap(null);
Image image=(Image)findComponentById(ResourceTable.Id_image_show);
image.setPixelMap(pixelMap);

这个ImageSource.create就是用的InputStream,在这里我们用的Resource替换实际证明是可以的。

这样Resources目录中的文件就能展示在Image组件中了。


更多关于HarmonyOS 鸿蒙Next base目录下资源文件读取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于HarmonyOS 鸿蒙Next base目录下资源文件读取的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)系统中,读取Next base目录下的资源文件通常涉及访问应用程序的资产(assets)或原始资源文件。鸿蒙系统提供了特定的API来管理这些资源。

要读取Next base目录下的资源文件,你可以使用ResourceManager或相关资源访问接口。以下是一个简化的步骤描述:

  1. 获取ResourceManager实例:首先,你需要获取一个ResourceManager实例,该实例允许你访问应用程序的资源。

  2. 定位资源:使用资源ID或路径定位你想要读取的资源文件。在鸿蒙系统中,资源文件通常通过资源表进行管理,因此你需要确保资源文件已在资源表中正确注册。

  3. 读取资源:一旦定位到资源,你可以使用ResourceManager提供的读取方法(如getResourceAsStreamgetResourceAsString等)来获取资源文件的内容。

  4. 处理资源:读取到资源后,你可以根据需要对资源进行处理,比如解析JSON、加载图像等。

请注意,具体的API调用和步骤可能因鸿蒙系统的版本和具体实现而有所不同。如果你遇到特定的错误或问题,请检查你的资源文件是否已正确注册,并确保你使用的API与你的鸿蒙系统版本兼容。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部