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、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

  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 全局设置字体
200浏览 • 1回复 待解决
HarmonyOS 如何设置全局字体
432浏览 • 1回复 待解决
HarmonyOS 全局设置字体没效果
249浏览 • 1回复 待解决
HarmonyOS 全局自定义字体
409浏览 • 1回复 待解决
HarmonyOS 全局自定义字体
450浏览 • 1回复 待解决
HarmonyOS 设置字体全局方法吗?
731浏览 • 1回复 待解决
HarmonyOS 设置全局字体没有效果
325浏览 • 1回复 待解决
HarmonyOS 应用内调整全局字体大小
653浏览 • 1回复 待解决
HarmonyOS 全局设置自定义字体的方法
312浏览 • 1回复 待解决
HarmonyOS List中字体大小的全局修改
373浏览 • 1回复 待解决
全局设置字体大小方案咨询
711浏览 • 1回复 待解决
HarmonyOS 全局loading
425浏览 • 1回复 待解决
HarmonyOS 字体适配问题
244浏览 • 1回复 待解决
HarmonyOS 全局弹窗问题
1009浏览 • 1回复 待解决
HarmonyOS 全局样式替换
214浏览 • 1回复 待解决