HAP中如何引用HAR包中resources目录的element目录、media目录和rawfile目录资源?

HAP中如何引用HAR包中resources目录的element目录、media目录和rawfile目录资源

阅读 674
1 个回答

HAP中访问HAR包中resources目录的element元素资源、media媒体资源
可以通过“$r('app.type.name')”形式引用。其中,app为应用内resources目录中定义的资源;type为资源类型或资源的存放位置,取值包含“color”、“float”、“string”、“plural”、“media”;name为资源命名,由开发者定义资源时确定。

例如在HAR包的“\library\src\main\resources\base\media”目录中有“iconHar.png”文件。

在HAP中的“entry\src\main\ets\pages\Index.ets”文件中通过“$r('app.type.name')”形式引用即可。

@Entry 
@Component 
struct Index { 
  build() { 
    Row() { 
      Column() { 
        Image($r('app.media.iconHar')) 
          .width(100) 
          .height(100) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}

HAP中访问HAR包中resources目录的rawfile原始文件资源。
例如在HAR包(不妨设名称为library)的“\library\src\main\resources\rawfile”目录中有“iconHar.png”文件。

  • 在HAR包中将rawfile目录下的“iconHar.png”文件封装成一个方法,例如在“\library\src\main\ets\components\mainpage\MainPage.ets”文件中封装一个方法。
export function rawFileIconHarPng() { 
  return $rawfile('iconHar.png'); 
}
  • 在“\library\Index.ets”文件中导出rawFileIconHarPng()方法。
export { rawFileIconHarPng } from './src/main/ets/components/mainpage/MainPage'
  • 在HAP中的“entry\src\main\ets\pages\Index.ets”文件中通过导入rawFileIconHarPng()方法后直接使用即可。
import { rawFileIconHarPng } from 'library'; 
 
@Entry 
@Component 
struct Index { 
  build() { 
    Row() { 
      Column() { 
        Image(rawFileIconHarPng()) 
          .width(100) 
          .height(100) 
      } 
      .width('100%') 
    } 
    .height('100%') 
  } 
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进