HarmonyOS鸿蒙Next中如何使用photoAccessHelper从相册选择图片?
HarmonyOS鸿蒙Next中如何使用photoAccessHelper从相册选择图片? 我需要让用户从相册选择图片,photoAccessHelper 如何使用?如何获取选中图片的 URI?
3 回复
实现思路:
- 使用 photoAccessHelper.PhotoViewPicker 创建选择器:
import { photoAccessHelper } from '@kit.MediaLibraryKit';
const picker = new photoAccessHelper.PhotoViewPicker();
- 配置选择参数并调用 select:
const result = await picker.select({
MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
maxSelectNumber: 9
});
- 从结果获取选中图片的 URI 数组:
if (result && result.photoUris.length > 0) {
this.selectedImages = result.photoUris;
}
- 完整示例代码:
import { photoAccessHelper } from '@kit.MediaLibraryKit';
@Entry
@Component
struct PhotoPickerPage {
@State selectedImages: string[] = [];
async selectPhotos() {
try {
const picker = new photoAccessHelper.PhotoViewPicker();
const result = await picker.select({
MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE,
maxSelectNumber: 9
});
if (result && result.photoUris.length > 0) {
this.selectedImages = result.photoUris;
console.info(`Selected ${this.selectedImages.length} photos`);
}
} catch (err) {
console.error(`Select photos failed: ${JSON.stringify(err)}`);
}
}
build() {
Column({ space: 16 }) {
Text('相册选择').fontSize(20).fontWeight(FontWeight.Bold)
Button(`选择图片 (已选${this.selectedImages.length}张)`)
.onClick(() => this.selectPhotos())
// 图片网格展示
if (this.selectedImages.length > 0) {
Grid() {
ForEach(this.selectedImages, (uri: string, index: number) => {
GridItem() {
Stack() {
Image(uri)
.width('100%')
.height('100%')
.objectFit(ImageFit.Cover)
.borderRadius(4)
// 删除按钮
Text('×')
.fontSize(16)
.fontColor(Color.White)
.backgroundColor('rgba(0,0,0,0.5)')
.width(24)
.height(24)
.textAlign(TextAlign.Center)
.borderRadius(12)
.position({ x: '80%', y: 4 })
.onClick(() => {
this.selectedImages = this.selectedImages.filter((_, i) => i !== index);
})
}
}
.width('100%')
.aspectRatio(1)
})
}
.columnsTemplate('1fr 1fr 1fr')
.columnsGap(8)
.rowsGap(8)
.width('100%')
.padding(8)
}
}
.width('100%')
.padding(16)
}
}
更多关于HarmonyOS鸿蒙Next中如何使用photoAccessHelper从相册选择图片?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,使用photoAccessHelper从相册选择图片,主要步骤如下:
- 在
module.json5文件中请求ohos.permission.READ_IMAGEVIDEO权限。 - 导入
@kit.MediaLibraryKit模块。 - 使用
photoAccessHelper.getPhotoAccessHelper(context)获取helper实例。 - 通过
PhotoSelectOptions设置选择条件(如文件类型、最大选择数)。 - 调用
photoViewPicker.select(selectOptions)启动选择器并返回所选图片的URI列表。
核心是配置权限、创建选择选项并调用选择器接口。


