一、LVGL 内置字体

LVGL有几种不同大小的内置字体,可以通过 LV_FONT_MONTSERRAT_X 定义在 lv_conf.h 中启用。

  1. 普通字体
    包含所有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
    
    
  2. 特殊字体

    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像素完美字体
    
  3. 内置符号

二、使用外部字体

在使用外部字体时,需要了解字体编码定义范围,见这么博主的文章:【LVGL(6)】显示中文设置,制作中文字库
字体显示和图片一样,需要外部定义像素,所以我们也可以使用工具将字体转换成程序可以使用的变量,如下所示:

  1. 使用字体在线转换工具
    LVGL 在线字体转换:https://lvgl.io/tools/fontconverter

  2. 转换文字

  3. 将生成的文件导入工程中

三、字体使用

  1. 内部字体使用

    lv_obj_t *test_label = lv_label_create(lv_scr_act());
    lv_label_set_text(test_label, "test");
    
  2. 内置符号使用

    lv_obj_t *test_label = lv_label_create(lv_scr_act());
    lv_label_set_text(test_label, LV_SYMBOL_OK);      // 正常显示,则应显示一个 ✓ 字符。
    
  3. 外部字体使用
    在使用之前需要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 , "测试字体");
    

原文地址:http://www.cnblogs.com/jzcn/p/16828773.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性