LVGL 8.3.0以上版本UTF-8中文字体制作以及使用

With this free online font converter tool you can create C array from any TTF or WOFF. You can select ranges of Unicode characters and speficy the bpp (bit-per-pixel).
The font converter is designed to be compatible with LVGL.

一、环境准备

版本:LVGL version: 8.3.6
官方工具链接:https://lvgl.io/tools/fontconverter
中文字体库版本:C:\Windows\Fonts (可以选择自己需要的字体库TTF或者WOFF格式都可以)

二、工具说明

使用官方提供的在线字体转换工具(https://lvgl.io/tools/fontconverter),需要注意的是默认要你设置生成文件的字符范围,如下图配置即可:
https://lvgl.io/tools/fontconverter

Enable Font compression (reduces size but results in slower rendering)
启用字体压缩(减小尺寸但导致渲染速度变慢)
Horizontal subpixel rendering (may improve font quality but results in larger fonts)
水平子像素渲染(可能会提高字体质量,但会导致字体变大)
Try to use glyph color info from font to create grayscale icons.
尝试使用字体中的字形颜色信息来创建灰度图标。
由于灰色调是通过透明度模拟的,因此仅在对比背景上效果会很好。

include another font:包含多个字体,这样多个字体会合并在一个问题件里,比如使用一些LVGL自带的常用图标如下图:
图标

三、生成文件说明

生成的*.c文件包含你添加的字符范围,每个在Symbols中添加的字符都会转换为一个数组数据,所有字符按序排列在glyph_bitmap数组内,按生成的标号来区分与查找字符。
在这里插入图片描述

lv_font_t 结构体描述了字体的属性
在这里插入图片描述

四、使用方法

在lv_conf.h文件中修改如下宏,同时确保文件的编码格式为UTF-8

/*Always set a default font*/
#define LV_FONT_DEFAULT &songti  /**< songti 改为你生成文件的字体属性结构体的名称*/


/**
 * Select a character encoding for strings.
 * Your IDE or editor should have the same character encoding
 * - LV_TXT_ENC_UTF8
 * - LV_TXT_ENC_ASCII
 */
#define LV_TXT_ENC LV_TXT_ENC_UTF8 /**< 使用utf-8*/

在头文件定义如下内容:

LV_FONT_DECLARE(songti)

添加

	test = lv_obj_create(NULL);

	test_ui = lv_label_create(test);
	lv_obj_set_x(test_ui,51);
	lv_obj_set_y(test_ui,72);
	lv_obj_set_width(test_ui,LV_SIZE_CONTENT);
	lv_obj_set_height(test_ui,LV_SIZE_CONTENT);
	lv_label_set_text(test_ui,"姓名");

效果图,这个是添加颜色修改后的字体,仅作为参考即可,到这里字体添加完成,后续依葫芦画瓢即可。
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值