HarmonyOS 如何设置全局字体?

如何设置app全局的字体文件,用于替换所有的Text组件的默认字体?

阅读 495
1 个回答

全局使用自定义字体,在EntryAbility.ets文件的onWindowStageCreate生命周期中,通过windowStage.loadContent回调注册

import font from '@ohos.font';
onWindowStageCreate(windowStage: window.WindowStage): void {
  windowStage.loadContent('pages/registerFont', (err, data) => {
  if (err.code) {
  return;
}
font.registerFont({
  familyName: 'Beacon',
  familySrc: $rawfile('font/Beacon.otf')
})
font.registerFont({
  familyName: 'SF',
  familySrc: $rawfile('font/SF-Pro-Text-Italic.ttf')
})
});
}

registerFont.ets在页面中使用注册的字体familyName即可

@Entry
@Component
struct registerFont {
  @State message: string = 'test'
  build() {
    Column() {
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(50)
        .fontFamily('Beacon')
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(50)
        .fontFamily('SF')
    }.width('100%')
  }
}

参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-font-V5

不能统一设置,在需要的地方设置

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进