HarmonyOS 应用使用iconfont不显示?

//全局加载字体
font.registerFont({
  familyName: 'icon',
  familySrc: $rawfile('iconfont/iconfont.ttf')
});

//使用字体
Text("\ue718")
  .fontColor($r('app.color.notice'))
  .fontSize(20)
  .fontWeight(FontWeight.Bold)
  .fontFamily("icon")
阅读 412
1 个回答

目前提供全局注册的方法getFont(),可以在entryAbility里的onWindowStageCreate生命周期里执行如下全局注册方法,就可以在全局使用font。

windowStages.getUIContext().getFont().registerFont({
  familyName: ‘iconfont’,
  familySrc: $rawfile(‘iconfont.ttf’)
})
具体使用参考如下代码使用:
import font from ‘@ohos.font’;

@Entry
@Component
struct Index {
  @State message: string = ‘Hello World’;

  aboutToAppear() {
    font.registerFont({
      familyName: ‘iconfont’,
      familySrc: $rawfile(‘iconfont.ttf’)
    })
  }

  build() {
    Row() {
      Column() {
        Text("\ue6fb")
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
          .fontFamily(“iconfont”)
      }
      .width(‘100%’)
    }
    .height(‘100%’)
  }
}

请参考如上代码使用需要注意的是HarmonyOS中使用Unicode编码是"\u+四位十六进制编码"。

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