HarmonyOS 鸿蒙Next怎样让字体大小跟随系统字体大小的设置

发布于 1周前 作者 nodeper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next怎样让字体大小跟随系统字体大小的设置

Text(this.str).fontSize(15).minFontSize(13).maxFontSize(17) 

这样设置的,但是系统字体大小只是普通档,这个Text就变得差不多有17号大小了,想要普通档为15,超大的才显示17,怎么弄呢,可不可以让Text像安卓那样可以自动适应大小?


更多关于HarmonyOS 鸿蒙Next怎样让字体大小跟随系统字体大小的设置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

字体大小跟随系统字体大小的设置需要以下配置

1.新建配置文件AppScope/resources/base/profile/configuration.json

{
  "configuration": {
    "fontSizeScale": "followSystem",
    "fontSizeMaxScale": "3.2"
  }
}

2.在AppScope/app.json5文件中引用该配置

{
  "app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "versionCode": 1000000,
    "versionName": "1.0.0",
    "icon": "$media:app_icon",
    "label": "$string:app_name",
    "configuration": "$profile:configuration"
  }
}

可以通过设置fontSizeMaxScale来限制文本的最大缩放倍数。

也可以通过以下方式获取到当前系统的文字大小数值。

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    let envCallback: EnvironmentCallback = {
      onConfigurationUpdated(config) {
        console.info(`envCallback onConfigurationUpdated success: ${JSON.stringify(config)}`);
        let fontSizeScale = config.fontSizeScale;
        let a:string = ""
        if (fontSizeScale && fontSizeScale >= 1.3) {
          a = '大字号'
        }else{
          a = '小字号'
        }
      },
      onMemoryLevel(level) {
        console.log(`onMemoryLevel level: ${level}`);
      }
    };
    try {
      let applicationContext = this.context.getApplicationContext();
      let callbackId = applicationContext.on('environment', envCallback);
      console.log(`callbackId: ${callbackId}`);
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }

通过首选项进行存储后,在您的页面中进行进行判断. 在鸿蒙系统中,可以使用像素单位来设置字体大小,这样可以避免系统字体大小设置的影响。例如,如果希望字体大小为15号,可以使用以下代码

if("大字号"){
    Text(this.message).fontSize(px2fp(20))
}else{
    Text(this.message).fontSize(px2fp(16))
}

更多关于HarmonyOS 鸿蒙Next怎样让字体大小跟随系统字体大小的设置的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS 鸿蒙Next中,要让应用的字体大小跟随系统字体大小的设置,可以通过以下步骤实现:

  1. 获取系统字体大小设置: 使用系统提供的API获取当前系统的字体大小设置。HarmonyOS提供了相应的系统配置接口,可以直接读取系统字体缩放比例。

  2. 应用字体缩放比例: 在获取到系统字体缩放比例后,将应用内的字体大小按此比例进行缩放。可以通过自定义控件或者全局样式管理器来实现这一点,确保所有UI元素中的字体大小都根据系统设置进行相应调整。

  3. 监听系统字体变化: 为了实时响应系统字体大小的变化,需要监听系统配置的变化。HarmonyOS提供了配置变化的监听机制,当系统字体大小发生变化时,应用可以接收到相应的通知,并重新应用新的字体缩放比例。

  4. 更新UI: 在监听到系统字体大小变化后,重新计算并应用新的字体大小到UI元素上,确保应用界面与系统字体大小设置保持一致。

通过上述步骤,HarmonyOS 鸿蒙Next应用可以实现字体大小跟随系统字体大小的设置。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部