HarmonyOS 鸿蒙Next “仿微信聊天”App开发技术分享(十一)选择相册中的图片
HarmonyOS 鸿蒙Next “仿微信聊天”App开发技术分享(十一)选择相册中的图片
上一节我们利用鸿蒙自带的JSON库实现了封装和解析JSON串,那么接下来准备把图片数据采用JSON格式封装。不过在此之前,得先从系统相册挑选一张待发送的图片才行,正所谓要先有鸡而后才有蛋呀。
鸿蒙提供了photoAccessHelper工具,无需申请相册或存储权限,即可从相册中选择几张图片。使用photoAccessHelper之前,要在ETS代码开头添加下面的导包语句:
import { photoAccessHelper } from '@kit.MediaLibraryKit';
photoAccessHelper翻译过来叫做相片访问帮助器,这个帮助器主要提供了两个方法,一个是PhotoSelectOptions,可获取相片选择参数;另一个是PhotoViewPicker,可获取相片选择器。
从PhotoSelectOptions获取的相片选择参数中,主要有下列四个参数:
- MIMEType:设置选择器可访问的文件类型。填photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE表示图片,填VIDEO_TYPE表示视频。
- maxSelectNumber:设置单次挑选图片的最大数量。如果只需选择一张图片,填1即可。
- isSearchSupported:是否支持搜索图片。
- isPhotoTakingSupported:是否支持拍摄照片。默认为false(看文档是默认为true?)。
于是从相册选择单张图片的参数设置代码如下:
let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
photoSelectOptions.maxSelectNumber = 1;
从PhotoViewPicker返回的相片选择器,可调用select方法拉起相册,供用户挑选相册图片。select方法的输入参数就是前面得到的PhotoSelectOptions对象,select方法的图片选择结果通过异步方式返回,返回结果为PhotoSelectResult类型,结果对象的photoUris字段保存着用户选中的一张或者多张图片的文件路径。
下面是调用PhotoViewPicker对象的select方法代码例子:
let photoPicker = new photoAccessHelper.PhotoViewPicker();
photoPicker.select(photoSelectOptions).then((photoSelectResult: photoAccessHelper.PhotoSelectResult) => {
console.info('PhotoViewPicker.select successfully, photoSelectResult uri: ' + JSON.stringify(photoSelectResult));
this.imagePath = photoSelectResult.photoUris[0]
}).catch((err: BusinessError) => {
console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
});
上面代码从挑选结果中取到第一张图片路径保存在imagePath变量中,接着即可使用Image组件显示该路径的图片画面,Image组件的渲染代码如下:
Image(this.imagePath).width('100%').objectFit(ImageFit.Contain)
综合以上的相册图片挑选代码,点击选择按钮打开的相册界面如下图所示:
选中某张图片之后,点击相册右上角的确认按钮,回到测试App界面如下图所示:
可见通过photoAccessHelper正常实现了相册图片的挑选功能。
下一篇文章会介绍如何把图片文件转换为BASE64字符串。
更多关于HarmonyOS 鸿蒙Next “仿微信聊天”App开发技术分享(十一)选择相册中的图片的实战教程也可以访问 https://www.itying.com/category-93-b0.html
更多关于HarmonyOS 鸿蒙Next “仿微信聊天”App开发技术分享(十一)选择相册中的图片的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next系统中开发“仿微信聊天”App时,若要实现选择相册中的图片功能,主要依赖于鸿蒙系统提供的多媒体访问API。以下是实现该功能的关键步骤:
-
权限申请:首先,需要在
config.json
文件中声明访问相册的权限,如ohos.permission.READ_MEDIA
。同时,在运行时通过abilityContext.requestPermissionsFromUser
方法向用户申请该权限。 -
启动图库选择器:使用
Intent
对象,设置Action为Intent.ACTION_PICK
,并指定数据类型为图片(如image/*
),然后通过startAbility
方法启动系统图库选择器。 -
处理返回结果:在图库选择器返回结果时,通过
onActivityResult
方法接收数据。返回的数据通常包含图片的URI,可以使用MediaStore
或鸿蒙提供的API根据该URI获取图片的实际路径或进行其他处理。 -
图片显示:获取到图片路径后,可以使用鸿蒙提供的图片组件(如
Image
)将图片显示在UI界面上。
请注意,以上步骤是基于鸿蒙系统的开发框架进行的概述,具体实现时可能需要根据鸿蒙系统的API文档进行适当调整。
如果问题依旧没法解决请联系官网客服,官网地址是: https://www.itying.com/category-93-b0.html