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
2024-11-13 11:58:12
浏览
已于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
微信
回复
2024-11-13 16:17:28
相关问题
进入相册或拍照选择图片头像
13587浏览 • 2回复 已解决
获取网络图片保存相册
1470浏览 • 1回复 待解决
HarmonyOS图片保存相册问题
431浏览 • 1回复 待解决
HarmonyOS 保存图片相册问题
375浏览 • 1回复 待解决
HarmonyOS 相册保存图片设置title报错
358浏览 • 1回复 待解决
HarmonyOS 保存图片相册权限问题
279浏览 • 1回复 待解决
如何保存网络图片相册
730浏览 • 1回复 待解决
HarmonyOS如何图片保存到手机相册
503浏览 • 1回复 待解决
HarmonyOS如何实现头像选择功能?
588浏览 • 1回复 待解决
HarmonyOS保存图片到系统相册问题咨询
643浏览 • 1回复 待解决
如何保存本地图片相册
1067浏览 • 1回复 待解决
求大佬告知如何保存图片相册
1148浏览 • 1回复 待解决
拉起相册选择图片页面失败
1934浏览 • 1回复 待解决