字体

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的字体?

  1. solution/examples/xxx/resource/fonts/freetype目录下,增删字体参见ttf字体增删

  2. 点击Butterfli的刷新图标,对应的字体将在界面上显示

  3. 在Butterfli的界面上选择使用哪些字体


FAQ5 如何在代码中动态调整ttf字体的访问顺序?

  1. ttf_order.txt规定了ttf字体默认的顺序。开机后将以该顺序默认进行访问

  2. 可通过代码中重新设置字体顺序进行设置

  3. 设置完成后可通过Finsh命令font_list查看顺序


FAQ6 如何临时修改某个字体支持的字号?

参见重新设置某个字体支持的字号。使用场景是某个页面需要一个不在默认中的字号,进入这个页面修改,退出页面恢复,从而能减少字号的数量。

  1. 临时修改某个字体的字号:lvsf_set_font_size_by_name

  2. 重置某个字体的字号,恢复到默认字号:lvsf_reset_font_size_by_name


FAQ7 如何修改默认支持的字号?

参见ttf字号设置

  1. 直接修改lvsf_font.h中FONT_SIZES的宏定义。该种方式适用于所有产品平台都是用一组字号的情况

  2. 通过menuconfig中打开FT_SIZE_SELF_DEFINED,然后产品工程的HCPU和Simulator目录下,定义__applicaiton_private__/ft_size_custom_reg.h来实现。该种方式适用于某个产品工程使用一套独立字号的情况。


FAQ8 如何在代码中使用ttf的字体?

参见代码中使用ttf字体

  1. 自动选择字体: lv_ext_set_local_font

  2. 使用指定字体: lv_ext_label_set_indicated_font

  3. 通过menuconfig中打开FT_SIZE_SELF_DEFINED,然后产品工程的HCPU和Simulator目录下,定义__applicaiton_private__/ft_size_custom_reg.h来实现。该种方式适用于某个产品工程使用一套独立字号的情况。


FAQ9 如何临时使用某个ttf的字体?

参见引用外置ttf字体

  1. 使用lvsf_font_load_ex加载指定的字体

  2. 使用lvsf_font_set_enable启用/禁用字体

  3. 使用lv_ext_label_set_indicated_font使用已经使能的字体

  4. 使用lvsf_font_unload_ex卸载lvsf_font_load_ex装入的字体


试用场景:某个应用需要特殊的字体,如阅读器或悬浮歌词应用等。

FAQ10 如何在文本中使用emoji?

参见emoji字体增删

  1. 通过menuconfig -> Font Config -> use emoji使能emoji

  2. solution\examples\xxx\resource\images_emoji\common\ezip目录下(增删)放入需要支持的emoji图标,并按照要求命名文件名

  3. lv_label_set_text中text参数中包括emoji时,文本将显示emoji的图标


FAQ11 某个字在字库中找不到时,会怎样?

某个字在字库中找不到时,会使用 .notdef 字形,显示 “豆腐块”□,提示无对应字形。

FAQ12 如何使用bitmap的字体?

参见设置支持bitmap(点阵)

  1. 通过menuconfig -> Font Config -> Bitmap is used使能bitmap

  2. 使用LVGL官网的字体转换工具生成对应的bitmap字体的c文件

  3. 生成的bitmap c文件放入solution\examples\xxx\resource\fonts\bitmap

  4. 使用lv_ext_set_local_bitmap_font应用bitmap的字体


FAQ13 ttf字体显示如何支持4bpp或8bpp?

修改lv_conf_sifli.h中FT_BPP的定义即可