HarmonyOS 文字fontFamily未生效?

给Text设置了文字fontFamily未生效,设置的字体名HarmonyOS Sans Italic。

阅读 531
1 个回答

参考以下代码:

import { font } from '@kit.ArkUI';

@Entry
@Component
struct FontIndex {
  @State message: string = 'Hello World'

  aboutToAppear() {
    // 注册iconFont
    font.registerFont({
      familyName: 'iconFont',
      familySrc: '/font/iconFont.ttf'
    })

    // familyName和familySrc都支持string
    font.registerFont({
      familyName: 'medium',
      familySrc: '/font/medium.ttf' // font文件夹与pages目录同级
    })
  }

  build() {
    Column() {
      Button("获取系统字体").width(200).height(50).onClick(() => {
        let fontConfig = font.getUIFontConfig();
        for (let i = 0; i < fontConfig.generic.length; i++) {
          for (let j = 0; j < fontConfig.generic[i].alias.length; j++) {
            console.log("cwq alias:" + fontConfig.generic[i].alias[j].name);
          }
        }
      })
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(20)
        .fontFamily('medium') // medium:注册自定义字体的名字($r('app.string.mediumFamilyName')、'mediumRawFile'等已注册字体也能正常使用)

      // 使用iconFont的两种方式
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(20)
        .fontFamily('iconFont')
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(20)
        .fontFamily('iconFont')

      // 使用系统的两种方式
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(20)
        .fontFamily('HarmonyOS-Sans-Condensed') // font.getUIFontConfig[i].generic.alias[j].name
      Text(this.message)
        .align(Alignment.Center)
        .fontSize(20)
        .fontFamily('serif')
    }.width('100%')
  }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进