HarmonyOS 全局字体

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

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

HarmonyOS
10h前
浏览
收藏 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
微信
回复
7h前
相关问题
HarmonyOS 设置字体全局方法吗?
261浏览 • 1回复 待解决
全局设置字体大小方案咨询
418浏览 • 1回复 待解决
HarmonyOS 全局弹窗问题
406浏览 • 1回复 待解决
HarmonyOS 全局弹窗demo
1浏览 • 0回复 待解决
HarmonyOS 全局样式怎么创建?
256浏览 • 1回复 待解决
HarmonyOS 全局的loading组件
251浏览 • 1回复 待解决
HarmonyOS 如何定义全局 style ?
337浏览 • 1回复 待解决
HarmonyOS ets文件全局引用
563浏览 • 1回复 待解决
HarmonyOS 如何全局复用样式
382浏览 • 1回复 待解决
HarmonyOS 使用自定义字体
241浏览 • 1回复 待解决
HarmonyOS webview字体大小设置
30浏览 • 1回复 待解决
HarmonyOS 字体大小如何设置?
514浏览 • 1回复 待解决
HarmonyOS 手机缺少方正字体
0浏览 • 0回复 待解决
如何自定义字体替换系统字体
426浏览 • 1回复 待解决
HarmonyOS 应用级全局弹框
314浏览 • 1回复 待解决
HarmonyOS 全局自定义弹窗demo
286浏览 • 1回复 待解决
HarmonyOS 没有全局的api loading动画
397浏览 • 1回复 待解决
HarmonyOS 是否有全局loading这种控件?
370浏览 • 1回复 待解决
HarmonyOS 如何在全局使用loading组件?
682浏览 • 1回复 待解决
HarmonyOS 如何声明全局回调函数
339浏览 • 1回复 待解决
HarmonyOS 如何简单使用全局变量?
416浏览 • 1回复 待解决