LVGL 字体
一、LVGL 内置字体
LVGL有几种不同大小的内置字体,可以通过 LV_FONT_MONTSERRAT_X 定义在 lv_conf.h 中启用。
-
普通字体
包含所有ASCII字符,度数符号(U + 00B0),项目符号(U + 2022)和内置符号,可以根据自己的需要选择定义 如下所示:#define LV_FONT_MONTSERRAT_8 0 #define LV_FONT_MONTSERRAT_10 0 #define LV_FONT_MONTSERRAT_12 0 #define LV_FONT_MONTSERRAT_14 1 #define LV_FONT_MONTSERRAT_16 0 #define LV_FONT_MONTSERRAT_18 0 #define LV_FONT_MONTSERRAT_20 0 #define LV_FONT_MONTSERRAT_22 0 #define LV_FONT_MONTSERRAT_24 0 #define LV_FONT_MONTSERRAT_26 0 #define LV_FONT_MONTSERRAT_28 0 #define LV_FONT_MONTSERRAT_30 0 #define LV_FONT_MONTSERRAT_32 0 #define LV_FONT_MONTSERRAT_34 0 #define LV_FONT_MONTSERRAT_36 0 #define LV_FONT_MONTSERRAT_38 0 #define LV_FONT_MONTSERRAT_40 0 #define LV_FONT_MONTSERRAT_42 0 #define LV_FONT_MONTSERRAT_44 0 #define LV_FONT_MONTSERRAT_46 0 #define LV_FONT_MONTSERRAT_48 0 -
特殊字体
LV_FONT_MONTSERRAT_12_SUBPX 0 // 与常规12像素字体相同,但具有亚像素渲染 LV_FONT_MONTSERRAT_28_COMPRESSED 0 // 与普通的28 px字体相同,但压缩字体为3 bpp LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 // 正常范围内的16像素字体+希伯来语,阿拉伯语,Perisan字母及其所有形式 LV_FONT_SIMSUN_16_CJK 0 // 16 px字体,具有正常范围+ 1000个最常见的CJK部首 LV_FONT_UNSCII_8 0 // 仅包含ASCII字符的8 px像素完美字体 LV_FONT_UNSCII_16 0 // 仅包含ASCII字符的16 px像素完美字体 -
内置符号
二、使用外部字体
在使用外部字体时,需要了解字体编码定义范围,见这么博主的文章:【LVGL(6)】显示中文设置,制作中文字库。
字体显示和图片一样,需要外部定义像素,所以我们也可以使用工具将字体转换成程序可以使用的变量,如下所示:
-
使用字体在线转换工具
LVGL 在线字体转换:https://lvgl.io/tools/fontconverter -
转换文字
-
将生成的文件导入工程中
三、字体使用
-
内部字体使用
lv_obj_t *test_label = lv_label_create(lv_scr_act()); lv_label_set_text(test_label, "test"); -
内置符号使用
lv_obj_t *test_label = lv_label_create(lv_scr_act()); lv_label_set_text(test_label, LV_SYMBOL_OK); // 正常显示,则应显示一个 ✓ 字符。 -
外部字体使用
在使用之前需要LV_FONT_DECLARE() 声明字体。
注意:想要使声明的字体全局可以,则在 lv_conf.h 文件中的 LV_FONT_CUSTOM_DECLARE 宏声明,如下图所示:
外部字体使用程序
/* 加载字体样式 */ static lv_style_t font_label_style; lv_style_init(&font_label_style); lv_style_set_text_font(&font_label_style, &test_font); lv_obj_t *test_label = lv_label_create(lv_scr_act()); lv_obj_add_style(test_label , &font_label_style, 0); lv_label_set_text(test_label , "测试字体"); -
改变字体颜色小技巧
当值改变字体颜色时,不需要创建样式即可改变颜色,如下所示/* 其中 #ff0000 ...# 表示设置的颜色 */ lv_label_set_text(tcs_view_label, "#ff0000 TCS34725 device cannot be opened#"); /* 记得使能文本重绘色 */ lv_label_set_recolor(tcs_view_label, true);
本文来自博客园,作者:浇筑菜鸟,转载请注明原文链接:https://www.cnblogs.com/jzcn/p/16828773.html
如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意! cn_jiaozhu@qq.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)