HarmonyOS 鸿蒙Next如何调用本地相册并选取图片?

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

HarmonyOS 鸿蒙Next如何调用本地相册并选取图片?

如何调用本地相册并选取图片?     

2 回复

参考下面代码

import { BusinessError } from '@ohos.base';
import photoAccessHelper from '@ohos.file.photoAccessHelper';

@Entry
@Component
struct Photo_Access {
  build() {
    Button('访问手机相册').onClick(() => {
      try {
        let PhotoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
        PhotoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
        PhotoSelectOptions.maxSelectNumber = 5;
        let photoPicker = new photoAccessHelper.PhotoViewPicker();
        photoPicker.select(PhotoSelectOptions).then((PhotoSelectResult: photoAccessHelper.PhotoSelectResult) => {
          console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' +
          JSON.stringify(PhotoSelectResult));
        }).catch((err: BusinessError) => {
          console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err));
        });
      } catch (error) {
        let err: BusinessError = error as BusinessError;
        console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err));
      }
    })
  }
}

在HarmonyOS 鸿蒙Next系统中调用本地相册并选取图片,可以按照以下步骤进行:

权限配置

首先,需要在manifest.json文件中声明访问存储的权限,如ohos.permission.READ_MEDIAohos.permission.CAMERA(如果需要拍照功能的话)。并在运行时向用户请求这些权限。

使用MediaStore API

鸿蒙系统提供了类似Android的MediaStore API,用于访问媒体文件。通过查询MediaStore,可以获取相册中的图片信息。

相册选择实现

  1. 实例化photoAccessHelper.PhotoViewPicker对象。
  2. 配置PhotoSelectOptions,设置MIME类型为图片,以及最大选择数量。
  3. 调用photoViewPicker.select(photoSelectOptions)方法,拉起相册选择界面。
  4. 处理选择结果,获取图片的URI列表。

示例代码

import photoAccessHelper from '@ohos.file.photoAccessHelper';

async function getPictureFromAlbum() {
    let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
    photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
    photoSelectOptions.maxSelectNumber = 1;
    let photoPicker = new photoAccessHelper.PhotoViewPicker();
    let photoSelectResult = await photoPicker.select(photoSelectOptions);
    let selectedUri = photoSelectResult.photoUris[0];
    // 后续可以根据selectedUri进行图片处理
}

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

回到顶部