讨论广场 问答详情
如何在应用内设置字体大小,我需要自己设置,不通过系统设置调整字体大小!
m0_64571176 2026-01-27 21:28:04
198 评论 分享
鸿蒙6.0

如题,我想在应用内设置字体大小,,而不是通过系统设置中的字体大小管理,应该怎么实现,求指导

198 评论 分享
写回答
全部评论(1)

使用ApplicationContext接口实现设置应用内全局字体大小。
通过setFontSizeScale方法设置应用字体的全局缩放比例:在entryability/EntryAbility中调用ApplicationContext接口,并使用setFontSizeScale方法,即可设置应用内全局字体比例大小。示例代码如下:

import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';

const DOMAIN = 0x0000;

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    try {
      console.info(`want: ${want}`);
      console.info(`launchParam: ${launchParam}`);
      this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET);
    } catch (err) {
      hilog.error(DOMAIN, 'testTag', 'Failed to set colorMode. Cause: %{public}s', JSON.stringify(err));
    }
    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate');
  }

  onDestroy(): void {
    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy');
  }

  onWindowStageCreate(windowStage: window.WindowStage): void {
    // Main window is created, set main page for this ability
    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

    // 方案一为'pages/Index';方案二为'pages/Page'
    windowStage.loadContent('pages/Page', (err) => {
      if (err.code) {
        hilog.error(DOMAIN, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err));
        return;
      }
      hilog.info(DOMAIN, 'testTag', 'Succeeded in loading the content.');
    });
    // 设置全局的字体大小
    let applicationContext = this.context.getApplicationContext();
    applicationContext.setFontSizeScale(2); // 将应用字体设置为2倍大小
  }


  onWindowStageDestroy(): void {
    // Main window is destroyed, release UI related resources
    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
  }

  onForeground(): void {
    // Ability has brought to foreground
    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onForeground');
  }

  onBackground(): void {
    // Ability has back to background
    hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onBackground');
  }
};

 

2026-01-27 21:52:01