学习中遇到的问题记录。
(我的LVGL版本由9.0改为了8.3,因为这个版本下的资料网上比较多)
首先,根据网上大佬的说法,在LVGL中内置了一些中文的字库,当有需要的字库时就可以去查找,然后使用,但是我不知道为什么用不了,因此有了这篇文章。
至于内置的字库,可以去找到这个文件里面去查找,然后在 lv_conf.h 中打开 LV_FONT_SIMSUN_16_CJK 宏定义
LVGL是可以自定义字库的,然后LVGL官方给出了一个网站可以在线转换字库,我们首先要做的就是需要去拿到一个语言包,这个网站可以去下载想要的中文语言包,这个是韦东山老师的网站。
以这个"思源黑体Bold"字体为例,点击即可下载
不过下载后有可能会遇到这种情况
这个不用担心,找到下载位置,然后把后缀改成.zip正常解压就好,然后你会得到这个文件
然后去LVGL的在线转换网站
随后你就会得到一个.c文件,把这个文件添加到你的文件夹里,像这样
添加到工程就好了
注意要把编码格式改为UTF8(这个请大家自己去找吧,还是比较容易的)
随后在全局声明这个字库
然后在你想要使用的地方用样式方式去设置这个字体
static lv_style_t style_font;//定义一个样式
lv_style_init(&style_font); // 初始化样式
lv_style_set_text_font(&style_font, &lv_font_chinese_siyun_blod); // 样式设置字体
lv_style_set_text_color(&style_font, lv_palette_main(LV_PALETTE_RED));//设置字体为红色
/* 用户标签 */
lv_obj_t* label_user = lv_label_create(lv_scr_act()); /* 创建标签 */
lv_label_set_text(label_user, "你好"); /* 设置文本 */
lv_obj_add_style(label_user, &style_font, LV_STATE_DEFAULT);
lv_obj_set_style_text_align(label_user, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN); /* 设置文本居中 */
lv_obj_align_to(label_user, img, LV_ALIGN_OUT_BOTTOM_MID, 0, -30); /* 设置位置 */
注意这只是个示例!!!我没有全部的代码,只是贴了字库相关的代码,这是生成结果。
END.