HarmonyOS 全局字体

1.如何全局替换系统默认字体为自定义字体,而不用每个页面或者每个组件都单独设置?

2.如何全局设置app字体不随系统字号和粗细改变?

HarmonyOS
2024-12-18 16:13:45
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

1、1.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')
})
});
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

1.2、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%')
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.

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

  1. 当前只有以fp为单位设置的字体会随系统大小改变。若当前使用fp作为字体大小单位,可以改用vp作为单位,屏蔽系统字体大小修改。字体像素(font pixel) 大小默认情况下与 vp 相同,即默认情况下 1 fp = 1vp。如果用户在设置中选择了更大的字体,字体的实际显示大小就会在 vp 的基础上乘以用户设置的缩放系数,即 1 fp = 1 vp * 缩放系数。

像素单位:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-pixel-units-V5

字体像素单位:fp: https://developer.huawei.com/consumer/cn/doc/design-guides/design-layout-basics-0000001795579413#section1964738154814

可以用动态属性,自定义class实现AttributeModifier接口,把text需要固定的样式定义,然后在页面调用。 参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-universal-attributes-attribute-modifier-V5

分享
微博
QQ
微信
回复
2024-12-18 19:18:15


相关问题
HarmonyOS 全局设置字体
512浏览 • 1回复 待解决
HarmonyOS 如何设置全局字体
805浏览 • 1回复 待解决
HarmonyOS 全局设置字体没效果
524浏览 • 1回复 待解决
HarmonyOS 全局自定义字体
847浏览 • 1回复 待解决
HarmonyOS 全局自定义字体
796浏览 • 1回复 待解决
HarmonyOS 设置字体全局方法吗?
1060浏览 • 1回复 待解决
HarmonyOS 设置全局字体没有效果
624浏览 • 1回复 待解决
HarmonyOS 应用内调整全局字体大小
1398浏览 • 1回复 待解决
HarmonyOS 全局设置自定义字体的方法
779浏览 • 1回复 待解决
HarmonyOS List中字体大小的全局修改
856浏览 • 1回复 待解决
全局设置字体大小方案咨询
1078浏览 • 1回复 待解决
HarmonyOS 全局loading
799浏览 • 1回复 待解决
HarmonyOS 字体适配问题
558浏览 • 1回复 待解决
HarmonyOS 全局弹窗问题
1319浏览 • 1回复 待解决
HarmonyOS 全局弹窗demo
608浏览 • 1回复 待解决