arkts使用相册模块获取图片url地址并显示

192 阅读1分钟

介绍

@ohos.file.photoAccessHelper (相册管理模块)

该模块提供相册管理模块能力,包括创建相册以及访问、修改相册中的媒体数据信息等。

使用相册模块获得所有照片url地址

export async function allExample() {
  let res:string[]=[]
  console.info('getAllObjectDemo');
  let predicates: dataSharePredicates.DataSharePredicates = new dataSharePredicates.DataSharePredicates();
  let fetchOption: photoAccessHelper.FetchOptions = {
    fetchColumns: [],
    predicates: predicates
  };
  let fetchResult: photoAccessHelper.FetchResult<photoAccessHelper.PhotoAsset> = await phAccessHelper.getAssets(fetchOption);
  const list=await fetchResult.getAllObjects()
  res=list.map(item=>item.uri)
  return res
}

测试页面Index.ets代码

import { Permissions } from '@kit.AbilityKit'
import { permissionManager } from '../common/PermissionManager'
import { promptAction } from '@kit.ArkUI'
import { allExample, createExample, deleteExample, example, pickerExample } from '../common/photoAccessHelper'@Entry
@Component
struct PhotoTest {
  @State
  list:string[]=[]
​
  async onPageShow(): Promise<void> {
    this.list = [...await allExample()]
    this.list=[...this.list]
    console.log(`list:${JSON.stringify(this.list)}`)
    console.log(`len:${this.list.length}`)
  }
  build() {
    Scroll(){
      Column({space:10}){
​
        if(this.list.length!=0)
        Flex({wrap:FlexWrap.Wrap}){
          ForEach(this.list,(item:string)=>{
            Image(item).width('30%')
              .margin(15)
          })
        }
      }.justifyContent(FlexAlign.Center)
      .alignItems(HorizontalAlign.Center)
      .height('100%')
      .width('100%')
    }
​
  }
}

页面结果

image.png