HarmonyOS鸿蒙Next中resourceManager.getRawFileContent的使用方法

HarmonyOS鸿蒙Next中resourceManager.getRawFileContent的使用方法

import image from '@ohos.multimedia.image';
@Entry
@Component
struct Index {
  @State message: string = '加载图片'
  @State pixelMap:PixelMap=null;

  async createImage(){
    const resourceManager=  getContext(this).resourceManager
     let buffer=await resourceManager.getRawFileContent("icon.png")
    let  imageSource=image.CreateIncrementalSource(buffer)
    let decodingOptions={
      editable: true,
      desiredPixelFormat:3,
    }
    this.pixelMap= await imageSource.createPixelMap(decodingOptions)
  }

  build() {
    Row () {
      Column () {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            this.createImage();
          })
        if(this.pixelMap!=null) {
          Image(this.pixelMap).height('120').width('120')
        }
      //  Image($rawfile("icon.png")).height('120').width('120')
      }
      .width('100%')
    }
    .height('100%')
  }
}

this.pixelMap是有数据,但就是显示不了图片,从网络读取图片回来又没问题


更多关于HarmonyOS鸿蒙Next中resourceManager.getRawFileContent的使用方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

这个问题通过在线提单进一步解决:https://developer.huawei.com/consumer/cn/support/feedback/#/,感谢您的反馈和支持

更多关于HarmonyOS鸿蒙Next中resourceManager.getRawFileContent的使用方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


await resourceManager.getRawFd("icon.png")

发现用这个也可以,就getRawFileContent不行

// 获取图片大小 pixelMap.getImageInfo().then(info => { console.info('info.width = ’ + info.size.width); console.info('info.height = ’ + info.size.height); }).catch(err => { console.error("Failed to obtain the image pixel map information.And the error is: " + err); });

调用上面代码测试了,info.size.with ,info.size.height都为0。

在HarmonyOS鸿蒙Next中,resourceManager.getRawFileContent方法用于获取应用资源目录下原始文件的二进制内容。该方法适用于访问未经过编译的原始文件,如文本文件、图片、音频等。使用该方法时,首先需要通过ResourceManager对象获取资源管理器实例。然后,调用getRawFileContent方法并传入资源路径,该方法将返回一个Promise对象,解析后获取文件的二进制数据。

示例代码如下:

import resourceManager from '@ohos.resourceManager';

resourceManager.getRawFileContent('entry/resources/rawfile/example.txt').then((value) => {
  console.info('Raw file content:', value);
}).catch((error) => {
  console.error('Failed to get raw file content:', error);
});

在该示例中,entry/resources/rawfile/example.txt为资源路径,getRawFileContent方法返回的Promise对象解析后获取的value即为文件的二进制内容。若获取失败,将捕获错误并进行处理。

在HarmonyOS(鸿蒙)Next中,ResourceManager.getRawFileContent用于获取raw目录下的文件内容。首先,确保文件放置在resources/rawfile目录下。然后,通过ResourceManager实例调用getRawFileContent方法,传入文件路径,返回一个Uint8ArrayArrayBuffer,表示文件内容。示例代码如下:

let context = getContext(this);
let resourceManager = context.resourceManager;
let rawFileContent = resourceManager.getRawFileContent('example.txt');
console.info('File content:', rawFileContent);

此方法适用于读取二进制或文本文件内容。

回到顶部