Harmonyos之字体设置功能
概述
字体大小适配是我们app在适配过程中比较常用的一个适配项, 这里我们学习下在鸿蒙项目适配中是如何实现 ,自定义字体显示文本、自定义字体恢复为系统字体、字体大小跟随系统设置、字体大小不跟随系统设置等功能。
PreferenceUtils(工具类)
const TAG = 'PreferenceUtils';
const TEXT_FONT_SIZE = 'textFontSize';
const TEXT_FONT_WEIGHT = 'textFontWeight';
const TEXT_FONT = 'textFont';
export class PreferenceUtils {
preference?: preferences.Preferences;
// 创建PreferenceUtils实例
getTextFontPreference(context: Context) {
try {
this.preference = preferences.getPreferencesSync(context, {
name: 'TextFontPreference' });
hilog.info(0x0000, TAG, 'create preference success');
} catch (err) {
let error = err as BusinessError;
hilog.error(0x0000, TAG, `create preference faile. code: ${
error.code}, message:${
err.message}`);
}
}
// 保存修改的字体大小
saveModifyFontSize(fontValue: number) {
try {
this.preference?.putSync(TEXT_FONT_SIZE, fontValue);
this.preference?.flush((err: BusinessError) => {
if (err) {
hilog.error(0x0000, TAG, `Failed to flush. code:${
err.code}, message:${
err.message}`);
return;
}
})
} catch (err) {
let error = err as BusinessError;
hilog.error(0x0000, TAG,
`putSync or flush fontSize preference data faile. code: ${
error.code}, message:${
err.message}`);
}
}
// 获取当前缓存的字体大小
getFontSize(): number {
let textFontSize: number = 0;
try {
textFontSize = this.preference?.getSync(TEXT_FONT_SIZE, 0) as number;
} catch (err) {
let error = err as BusinessError;
hilog.error(0x0000, TAG, `getSync fontSize preference data faile. code

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



