​代码实现

  • api讲解

getStringArray

getStringArray(resId: number, callback: AsyncCallback<Array>): void

用户获取指定资源ID对应的字符串数组,使用callback形式返回字符串数组。

系统能力:SystemCapability.Global.ResourceManager
参数:
参数名 类型 必填 说明
resId number 资源ID值
callback AsyncCallback<Array> 异步回调,用于返回获取的字符串数组
示例:
  //todo 获取ResourceManager对象
resourceManager.getResourceManager((error, mgr) => {
if(error!=null){
//todo 获取ResourceManager失败
console.log("ResourceManager error is " + error);
}else{
//todo 获取ResourceManager成功 调用getStringArray获取数组集合
mgr.getStringArray($r('app.strarray.test').id, (error, value) => {
//todo 获取StringArray 失败
if (error != null) {
console.log("error is " + error);
} else {
//todo 获取StringArray 成功 并且把value转化为string
this. result = value.toString();
}
});
}
});

getMediaBase64

getMediaBase64(resId: number, callback: AsyncCallback): void

用户获取指定资源ID对应的图片资源Base64编码,使用callback形式返回字符串。

系统能力:SystemCapability.Global.ResourceManager
参数:
参数名 类型 必填 说明
resId number 资源ID值
callback AsyncCallback 异步回调,用于返回获取的图片资源Base64编码
示例:
  //todo 获取ResourceManager对象
resourceManager.getResourceManager((error, mgr) => {
if(error!=null){
//todo 获取ResourceManager失败
console.log("ResourceManager error is " + error);
}else{
//todo 获取ResourceManager成功 调用getMediaBase64获取base64字符串
mgr.getMediaBase64($r('app.media.result').id, (error, value) => {
//todo 获取base64字符串失败
if (error != null) {
console.log("error is " + error);
} else {
//todo 获取base64字符串成功
this.Base64Str=value
}
});
}
});

  • 准备工作

1.在resources\base\element新建一个strarry文件命名为strarr.json,文件内容如下

{
"strarray": [
{
"name": "test",
"value": [
{
"value": "this is value One"
},
{
"value": "this is value Two"
},
{
"value": "this is value Three"
}
]
}
]
}

2.准备一张图片(如下图所示)并且放在resources\base\media文件目录下,取名为result.png

  • 绘画组件并实现功能

绘画三个“text”组件,显示内容分别为“读取数组集合”、“结果:”、“加载图片”和一个“Image”组件用于显示“加载图片”显示的base64字符型,分别实现“读取数组集合”、和“加载图片”的点击功能,具体详细的内容描述看代码注释

import resourceManager from '@ohos.resourceManager';
@Entry
@Component
struct Index {
@State Base64Str:string=""
@State result:string=""
//todo 加载图片获取base64点击事件函数
public getMediaBase64(){
//todo 获取ResourceManager对象
resourceManager.getResourceManager((error, mgr) => {
if(error!=null){
//todo 获取ResourceManager失败
console.log("ResourceManager error is " + error);
}else{
//todo 获取ResourceManager成功 调用getMediaBase64获取base64字符串
mgr.getMediaBase64($r('app.media.result').id, (error, value) => {
//todo 获取base64字符串失败
if (error != null) {
console.log("error is " + error);
} else {
//todo 获取base64字符串成功
this.Base64Str=value
}
});
}
});
}
//todo 实现读取数组集点击事件函数
public getStringArray(){
//todo 获取ResourceManager对象
resourceManager.getResourceManager((error, mgr) => {
if(error!=null){
//todo 获取ResourceManager失败
console.log("ResourceManager error is " + error);
}else{
//todo 获取ResourceManager成功 调用getStringArray获取数组集合
mgr.getStringArray($r('app.strarray.test').id, (error, value) => {
//todo 获取StringArray 失败
if (error != null) {
console.log("error is " + error);
} else {
//todo 获取StringArray 成功 并且把value转化为string
this. result = value.toString();
}
});
}
});
}
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Text('读取数组集合')
.fontSize(20)
.width("100%")
.textAlign(TextAlign.Center)
.backgroundColor("#ed6262")
//todo 实现读取数组集合点击事件
.onClick(this.getStringArray.bind(this))
//todo 显示结果
Text('结果:'+this.result)
.fontSize(20)
.fontWeight(FontWeight.Bold)
.margin({top:10})
Text('加载图片')
.fontSize(20)
.margin({top:10})
.width("100%")
.backgroundColor("#ed6262")
.textAlign(TextAlign.Center)
//todo 实现加载图片点击事件
.onClick(this.getMediaBase64.bind(this))
//todo 显示图片结果
Image(this.Base64Str)
.width(100).height(100)
.backgroundColor("#ed6262")
.margin({top:10})
}
.width('100%')
.height('100%')
}
}

预览效果如下

运行效果

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

【ARK UI】HarmonyOS ETS 资源管理基本使用的更多相关文章

  1. 【ARK UI】HarmonyOS 从相册选择图片并显示到Image组件上

    ​ 参考资料 [Harmony OS][ARK UI]ETS 上下文基本操作 [Harmony OS][ARK UI]ets使用startAbility或startAbilityForResult方式 ...

  2. 【ARK UI】HarmonyOS ETS如何创建PixeMap并显示Image组件上

    ​参考资料 图片处理 Context模块 api讲解 image.createPixelMap createPixelMap(number: fd, options: InitializationOp ...

  3. 100行代码实现HarmonyOS“画图”应用,eTS开发走起!

    本期我们给大家带来的是"画图"应用开发者Rick的分享,希望能给你的HarmonyOS开发之旅带来启发~ 介绍 2021年的华为开发者大会(HDC2021)上,HarmonyOS ...

  4. HarmonyOS Java UI之DirectionalLayout布局

    在之前的章节中我使用的是Java 代码构建UI界面,从本节开始,将使用XML构建UI界面. 使用XML构建UI(默认你已经会在项目中创建XML布局文件)界面相对Java代码构建的好处是:结构清晰,代码 ...

  5. HarmonyOS Java UI之StackLayout布局示例

    StackLayout简介 StackLayout意为堆叠布局,用于在屏幕上保留一个区域来显示组件,实现特殊的功能.通常,堆叠布局中只应该放置一个子组件,如果存在多个子组件,则显示最新的组件.这个布局 ...

  6. HarmonyOS Java UI之DependentLayout布局示例

    DependentLayout简介 DependentLayout意为相对位置布局,与DirectionalLayout相比较有更多的排布方式,每个组件可以指定相对于其他同级组件的位置,也可以指定相对 ...

  7. HDC技术分论坛:HarmonyOS新一代UI框架的全面解读

    作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...

  8. HarmonyOS UI组件在线预览,程序员直呼“不要太方便~”

    一.介绍 以往大家如果想查看组件的使用效果,需要打开DevEco Studio构建工程.现在为了便于大家高效开发,文档上线了JS UI组件在线预览功能,无需本地构建工程,在线即可修改组件样式等参数.一 ...

  9. 【HarmonyOS】【Demo】【JAVA UI】 鸿蒙怎么在Webview上添加组件

    在大家HarmonyOS开发中,Webview组件上添加组件可能是很常见的功能了,HarmonyOS的webview和Android的webwiew存在一点点区别,今天来实现这个功能 使用项目布局显示 ...

随机推荐

  1. 在Rally上,上传测试报告(文件)到每个Test Case方法

    本文链接: https://www.cnblogs.com/hchengmx/p/how-to-upload-test-result-to-test-case-result-in-rally.html ...

  2. 在Winform开发中,使用Async-Awati异步任务处理代替BackgroundWorker

    在Winform开发中有时候我们为了不影响主UI线程的处理,以前我们使用后台线程BackgroundWorker来处理一些任务操作,不过随着异步处理提供的便利性,我们可以使用Async-Awati异步 ...

  3. javascript写淡入淡出效果的轮播图

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Turtle绘图——python简单上手小案例

    Turtle绘图 Turtle模块提供了在二维平面上移动的环境. Turtle可以实现位置.航向和各种可能的状态和动作. import turtle as tu roo = tu.Turtle() # ...

  5. Linux YUM制作自己的yum repository

    Linux YUM制作自己的yum repository 配置步骤: 1.通过网络发布自己的package目录 2.创建本地repository 3.配置自己的yum源 操作实现: 1 安装creat ...

  6. 数据访问 - EntityFramework集成

    前言 Masa提供了基于EntityFramework的数据集成,并提供了数据过滤与软删除的功能,下面我们将介绍如何使用它? MasaDbContext入门 安装.Net 6.0 新建ASP.NET ...

  7. Android 12(S) 图像显示系统 - drm_hwcomposer 简析(下)

    必读: Android 12(S) 图像显示系统 - 开篇 合成方式 合成类型的定义:/hardware/interfaces/graphics/composer/2.1/IComposerClien ...

  8. CentOS查看操作系统安装时间信息:

    CentOS查看系统安装时间信息: 方法1:[root@logserver ~]#  ll /boot/|egrep -i "(grub|lost\+found)" 方法2:[ro ...

  9. labview从入门到出家5(进阶篇)--程序调试以及labview函数库的运用

    跟了前面几章的操作流程,相信大家对labview有了一定的认识.其实只要了解了labview的编程思路,再熟悉地运用各个变量,函数以及属性,那么我们就可以打开labview的大门了.跟其他编程语言一样 ...

  10. 数据类型 简单扩展(Java)

    public class HelloWorld { public static void main(String[] args) { //整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x i ...