字体¶
FAQ1 支持哪些类型的字体? 如何enable/disable?¶
Solution既支持freetype的ttf字体,也支持bitmap的字体。注意:目前尚不支持otf的字体。
可以通过
menuconfig -> Font Config选项enable/disable freetype和bitmap。
FAQ2 是否支持多个ttf?¶
Solution支持多个ttf的组合。字体显示时,会根据solution\examples\watch\resource\fonts\freetype\ttf_order.txt中的顺序进行查找。
FAQ3 如何从一个ttf中抽取自己需要的字以及如何把多一个ttf合为一个ttf?¶
可以使用fontCreater的工具编辑实现。
FAQ4 如何增删一个ttf的字体?¶
在
solution/examples/xxx/resource/fonts/freetype目录下,增删字体参见ttf字体增删点击Butterfli的刷新图标,对应的字体将在界面上显示
在Butterfli的界面上选择使用哪些字体

FAQ5 如何在代码中动态调整ttf字体的访问顺序?¶
ttf_order.txt规定了ttf字体默认的顺序。开机后将以该顺序默认进行访问
可通过代码中重新设置字体顺序进行设置
设置完成后可通过Finsh命令
font_list查看顺序
FAQ6 如何临时修改某个字体支持的字号?¶
参见重新设置某个字体支持的字号。使用场景是某个页面需要一个不在默认中的字号,进入这个页面修改,退出页面恢复,从而能减少字号的数量。
临时修改某个字体的字号:
lvsf_set_font_size_by_name重置某个字体的字号,恢复到默认字号:
lvsf_reset_font_size_by_name
FAQ7 如何修改默认支持的字号?¶
参见ttf字号设置。
直接修改lvsf_font.h中
FONT_SIZES的宏定义。该种方式适用于所有产品平台都是用一组字号的情况通过menuconfig中打开
FT_SIZE_SELF_DEFINED,然后产品工程的HCPU和Simulator目录下,定义__applicaiton_private__/ft_size_custom_reg.h来实现。该种方式适用于某个产品工程使用一套独立字号的情况。
FAQ8 如何在代码中使用ttf的字体?¶
参见代码中使用ttf字体。
自动选择字体:
lv_ext_set_local_font使用指定字体:
lv_ext_label_set_indicated_font通过menuconfig中打开
FT_SIZE_SELF_DEFINED,然后产品工程的HCPU和Simulator目录下,定义__applicaiton_private__/ft_size_custom_reg.h来实现。该种方式适用于某个产品工程使用一套独立字号的情况。
FAQ9 如何临时使用某个ttf的字体?¶
参见引用外置ttf字体。
使用
lvsf_font_load_ex加载指定的字体使用
lvsf_font_set_enable启用/禁用字体使用
lv_ext_label_set_indicated_font使用已经使能的字体使用
lvsf_font_unload_ex卸载lvsf_font_load_ex装入的字体
试用场景:某个应用需要特殊的字体,如阅读器或悬浮歌词应用等。
FAQ10 如何在文本中使用emoji?¶
参见emoji字体增删。
通过
menuconfig -> Font Config -> use emoji使能emoji在
solution\examples\xxx\resource\images_emoji\common\ezip目录下(增删)放入需要支持的emoji图标,并按照要求命名文件名在
lv_label_set_text中text参数中包括emoji时,文本将显示emoji的图标
FAQ11 某个字在字库中找不到时,会怎样?¶
某个字在字库中找不到时,会使用 .notdef 字形,显示 “豆腐块”□,提示无对应字形。
FAQ12 如何使用bitmap的字体?¶
通过
menuconfig -> Font Config -> Bitmap is used使能bitmap使用LVGL官网的字体转换工具生成对应的bitmap字体的c文件
生成的bitmap c文件放入
solution\examples\xxx\resource\fonts\bitmap中使用
lv_ext_set_local_bitmap_font应用bitmap的字体
FAQ13 ttf字体显示如何支持4bpp或8bpp?¶
修改lv_conf_sifli.h中FT_BPP的定义即可