HarmonyOS 如何使file://docs的媒体文件uri在Image组件上正常显示

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

image组件支持file://路径前缀的字符串,应用沙箱URI:file://<bundleName>/<sandboxPath>。用于读取本应用安装目录下files文件夹下的图片资源。需要保证目录包路径下的文件有可读权限

应用沙箱目录可参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-sandbox-directory-V5

参考如下demo:

import fileUri from '@ohos.file.fileuri';
import common from '@ohos.app.ability.common';
import fs from '@ohos.file.fs';

@Entry
@Component
struct Index{
  @State message: string = 'Hello World';
  @State uri: string = ""

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            let context = getContext(this) as common.UIAbilityContext
            let filePath = context.filesDir + "/test.png"
            let arrayBuff = context.resourceManager.getRawFileContentSync("cartoon-avatar-BqirsYjp.png").buffer
            console.log('testTag-----',arrayBuff)
            let file = fs.openSync(filePath,fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE)
            fs.writeSync(file.fd,arrayBuff)
            this.uri = fileUri.getUriFromPath(filePath)
            console.log('testTag-----',filePath)
          })
        Image(this.uri)
          .width(100)
          .height(100)
      }
      .width('100%')
    }
    .height('100%')
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS 媒体文件 C++ 访问问题
53浏览 • 1回复 待解决
在读取媒体文件open: permission denied
2881浏览 • 1回复 待解决
image组件,files目录文件显示
1636浏览 • 1回复 待解决
HarmonyOS如何使Text中单词折行显示
510浏览 • 1回复 待解决