一、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 , "测试字体");
  4. 改变字体颜色小技巧

    当值改变字体颜色时,不需要创建样式即可改变颜色,如下所示

    /* 其中 #ff0000 ...# 表示设置的颜色 */
    lv_label_set_text(tcs_view_label, "#ff0000 TCS34725 device cannot be opened#");
    /* 记得使能文本重绘色 */
    lv_label_set_recolor(tcs_view_label, true);

LVGL 字体的更多相关文章

  1. LVGL库入门教程04-样式

    LVGL样式 LVGL样式概述 创建样式 在 LVGL 中,样式都是以对象的方式存在,一个对象可以描述一种样式.每个控件都可以独立添加样式,创建的样式之间互不影响. 可以使用 lv_style_t 类 ...

  2. AIR32F103(十) 在无系统环境和FreeRTOS环境集成LVGL

    目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告 AIR32F103(二) Linux环境和LibOpenCM3项目模板 AIR32F103(三) Linux环境基于标准外 ...

  3. BL808:【M1s DOCK开发板】与LVGL 使用体验

    前言 念春时已夏,恋冬雪已融. 总是感叹时光匆匆,便努力在在平凡中挣扎,在平庸中努力,在平淡中积累.奈何时代飞速发展,时间又被工作占用,外加生活中的诱惑又太多了,很多想学.想做.想超越的事,都被抛之一 ...

  4. 谈谈一些有趣的CSS题目(十二)-- 你该知道的字体 font-family

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  5. Linux 桌面系统字体配置要略

    字体显示效果测试 这一段是为了测试宋体字的显示效果,包括宋体里面自带的英文字体,“This is english,how does it look like?”.这一行是小字.后面几个字是加粗的宋体. ...

  6. 在 Ubuntu 14.10 中借用 Windows 的字体

    在前一篇随笔中,我详细讨论了字体的分类及用途,也以 Fedora 20 为例,展示了字体配置的思路和方法.我在配置 Fedora 20 系统字体的时候,采用的是一种釜底抽薪的方法,完全抛开了系统原有的 ...

  7. TODO:一不顺眼就换字体Go之代码篇

    TODO:一不顺眼就换字体Go之代码篇 image包实现了一个基本的2D图像库,该包中包含基本的接口叫做image,这个里面包含color,这个将在image/color中描述:新增字体font,进行 ...

  8. TODO:一不顺眼就换字体Go之应用篇

    TODO:一不顺眼就换字体Go之应用篇 字体,文字的外在形式特征.就是文字的风格,是文字的外衣.好的字体让人看得舒服,让人更有看.写的欲望哦.2016-11-16 GO官方博客发布了同名Go字体,并没 ...

  9. TODO:Go语言同名Go字体发布

    TODO:Go语言同名Go字体发布 2016-11-16 Go语言官方博客发布了一款同名字体–Go字体.此字体族包括正常.粗体和斜体渲染,支持比例和等宽字体.此字体已经经过用于编程方面的技术测试,使用 ...

  10. Android SearchView 自定义SearchIcon和字体颜色大小

    自定义SearchView的搜索图标和字体属性相对复杂一些,记下来. 一.自定义SearchIcon 1.API版本低于21:版本小于21时,要修改SearchIcon比较复杂,需要先获取到Searc ...

随机推荐

  1. 记录--vue打印插件

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 网页实现打印 可以选择性的打印某一部分 的vue组件 1.引入 把print.js 下载到本地,然后放在src 下面添加文件夹里. pri ...

  2. Nancy一个轻量级用于构建基于 HTTP 的 Web 服务

    记录一下: Nancy官网地址:http://nancyfx.org/ GitHub文档地址:https://github.com/NancyFx/Nancy/wiki/Documentation 有 ...

  3. kingbaseES 优化之操作系统瓶颈排查

    针对操作系统性能瓶颈的判断和排查是数据库优化工作的一项重要技能,尤其是针对实例整体优化 操作系统的性能瓶颈排查无外乎四个方面 CPU.内存.磁盘.网络 针对这四个方面整理了一些相关心得和大家分享. 在 ...

  4. KingbaseESV8R6 heap table末端垃圾页回收机制

    前言 默认情况下,vacuum表不能释放磁盘空间,只是在dead tuple做个标记位,但heap table末端的垃圾页可以被truncate,从磁盘中释放空间.例如表的末尾的100个数据块里面全是 ...

  5. KingbaseES 物化视图与源表的依赖关系

    KingbaseES例程_重建物化视图的源表 概述 数据结构的修改步骤,数据表先删除,然后创建.如果数据表是物化视图的源表,则提示依赖关系. Oracle的实施 创建数据表和物化视图 create t ...

  6. #二分,哈希 or dp#洛谷 4398 [JSOI2008]Blue Mary的战役地图

    题目 求两个正方形矩阵的最大公共正方形矩阵边长 分析 第一种就是\(dp\): 设\(dp[x1][y1][x2][y2]\)表示第一个正方形矩阵以\((x1,y1)\)为右下角, 第二个正方形矩阵以 ...

  7. #线段树#LOJ 6029「雅礼集训 2017 Day1」市场

    题目 在长度为\(n(n\leq 10^5)\)的数列中, 需要满足区间加,区间下取整的操作 以及能够查询区间和以及区间最小值 除数\(d\)满足\(2\leq d\leq 10^9\) 加数\(c\ ...

  8. npm/cnpm 设置镜像地址

    npm 查看当前镜像源: npm config get registry # https://registry.npmjs.org/ 修改当前镜像源: npm config set registry ...

  9. Centos 6.4 配置网页服务器

    Centos 6.4 配置网页服务器 (2013-08-08 22:59:09) 转载▼   分类:linux系统 今天值班,在单位找一台电脑安装了Centos 6.4操作系统. 一.安装软件 yum ...

  10. 带你走进红帽企业级 Linux 6体验之旅(安装篇)

    红帽在11月10日发布了其企业级Linux,RHEL 6的正式版(51CTO编辑注:红帽官方已经不用RHEL这个简称了,其全称叫做Red Hat Enterprise Linux).新版带来了将近18 ...