font字体生成
Last updated
Last updated
lvgl字库生成需要专用的工具这里推荐使用 SquareLine Studio
和 GUI Guider
,可以满足大部分需求,如果只使用英文字符,可能更加省心,不用操心字库是问题,在设计初期建议先使用英文字符,后续再进行汉化操作。
为方便先开发后汉化,推荐如下方便规划项目,方便语言切换。
新建 language.h
头文件放置中文资源
框架规划如下,LANGUAGE_CN
来控制语言切换
使用方式演示
动态的语言切换
如果向使用动态的切换效果,可以修改宏 #define LANGUAGE(en, ch) (LANGUAGE_CN ? ch : en)
为函数,方便切换调用如
快捷选中所有中文
中文字符集中在一个文件虽然方便管理,但是如何便捷的拿到中文字符给软件生成字库仍然是个问题。 这里推荐使用vscode搭配shift ctrl alt来快捷选中,观察 language.h
中 TEXT_XXX 结构即可看到明显的规律,
alt按下列选中所有中文字符所在行
松开alt后点击End至行末尾,在操作方向键,左移动两下可得下图位置
重点操作,同时按着ctrl和shift,再操作方向键点击左键即可完成中文的选中操作,具体效果见下图
通过操作3选中后,松手后点击 ctrl+C
完成所有中文的拷贝。
选择字体 可以优先考虑win中自带的 *.tff
字体路径在 C:\Windows\Fonts
,或者自行网络获取。
SquareLine Studio
生成字库操作 打开 SquareLine Studio
,随便创建一个工程,找到 \./assets\fonts
路径,将 *.tff
字体放入里面,找到界面font列表如下图所示根据需要进行配置后,点击CREATE,完成字库的创建,可以在刚才的路径下找到刚生成的字库加入工程了。
GUI Guider
生成字库操作 GUI Guider
生成字库更加简单,他在UI设计过程中能够自动生成字库,因此如果您采用此软件进行界面设计则无需额外生成字库,如果手动生成字库,怎需要新建一个工程,按照下图打开,生成后到工程路径下寻找 generated\guider_customer_fonts
lv_font_conv-win.exe
脚本生成
命令示例
使用中文字库后,图标不显示问题(显示为方框)
解决方式:
主要是选中的中文字库中未包含相应的图标,图标资源在 FontAwesome5.woff
中,而现有的 SquareLine Studio
不支持多种图标的直接生成因此需要使用脚本调用 lv_font_conv-win.exe
生成字库。 示例:
安装路径下获取 \SquareLine Studio 1.3.3\lvgl\lv_font_conv-win.exe
与多个资源放到一个文件夹下如
编写bat脚本见lv_font_conv-win.exe
脚本生成
命令示例
解释:生成了一个名为 ui_font_simfang16.c
字库,数据不压缩,像素位数4 尺寸16 用 Montserrat-Medium.ttf
字体生成ASCII码范围;FontAwesome5-Solid+Brands+Regular.woff
生成的图标范围见 lv_symbol_def.h
;simfang.ttf
生成了中文部分