HarmonyOS 如何从相册里选择图片作为头像并保存路径以便下次打开时还能显示?

代码如下:

Image(this.avatarUri) 
  .size({ width: 84, height: 84 }) 
  .margin({ top: 36 }) 
  .borderRadius(Number.MAX_VALUE) 
  .onClick(async () => { 
    let photoSelectResult = await this.photoPicker.select(this.photoSelectOptions) 
    Log.debug(TAG, 
      `PhotoViewPicker.select successfully, photoSelectResult uri: ${JSON.stringify(photoSelectResult)}`) 
    this.avatarUri = photoSelectResult.photoUris[0] 
    this.preferences.put('avatar_uri', photoSelectResult.photoUris[0]).then(() => { 
      this.preferences.flush() 
    }) 
  })

我通过PhotoViewPicker从相册里选择图片作为头像后,将路径保存到preferences里,但是下次重新进入页面后从prefeneces里取出路径后,Image却不显示图片请求。

HarmonyOS
4天前
浏览
已于2024-11-13 11:58:26修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

需要将选择的图片uri保存到沙盒路径中保存使用。

choosePhoto() { 
  const photoSelectOptions = new picker.PhotoSelectOptions(); 
  photoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; // 过滤选择媒体文件类型为IMAGE 
  photoSelectOptions.maxSelectNumber = 1; // 选择媒体文件的最大数目 
  let uris: Array<string> = []; 
  const photoViewPicker = new picker.PhotoViewPicker(); 
  photoViewPicker.select(photoSelectOptions).then(async (photoSelectResult: picker.PhotoSelectResult) => { 
    uris = photoSelectResult.photoUris; 
    console.info('photoViewPicker.select to file succeed and uris are:' + uris); 
 
    let context = getContext(this) as common.UIAbilityContext; 
    let resFile = fs.openSync(uris[0], fs.OpenMode.READ_ONLY) 
    const dateStr = (new Date().getTime()).toString() 
    // 临时文件目录 
    let newPath = context.cacheDir + `/${dateStr + resFile.name}`; 
    // 转化路径 
    fs.copyFileSync(resFile.fd, newPath); 
    // 新的路径 
    let realUri = 'file://' + newPath; 
    //保存路径使用 
    this.avatarUri = realUri; 
 
  }).catch((err: BusinessError) => { 
    console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`); 
  }) 
}
分享
微博
QQ
微信
回复
4天前
相关问题
进入相册或拍照选择图片头像
13384浏览 • 2回复 已解决
获取网络图片保存相册
1234浏览 • 1回复 待解决
HarmonyOS图片保存相册问题
322浏览 • 1回复 待解决
HarmonyOS 保存图片相册问题
65浏览 • 1回复 待解决
HarmonyOS如何实现头像选择功能?
357浏览 • 1回复 待解决
如何保存网络图片相册
629浏览 • 1回复 待解决
HarmonyOS如何图片保存到手机相册
371浏览 • 1回复 待解决
HarmonyOS 相册保存图片设置title报错
262浏览 • 1回复 待解决
HarmonyOS 保存图片相册权限问题
90浏览 • 1回复 待解决
如何保存本地图片相册
897浏览 • 1回复 待解决
求大佬告知如何保存图片相册
976浏览 • 1回复 待解决
HarmonyOS保存图片到系统相册问题咨询
508浏览 • 1回复 待解决
拉起相册选择图片页面失败
1782浏览 • 1回复 待解决
怎样让用户选择加载图片
8936浏览 • 1回复 待解决