RVB2601使用lvgl库,显示中文并不麻烦,步骤如下:
首先选择合适字体,在lvlg中,只有lv_font_simsun_16_cjk可以支持中文,那么在lv_conf.h文件中使能这个字体,如下:
#define LV_FONT_SIMSUN_16_CJK 1 /*1000 most common CJK radicals*/
在这个文件中,定义了缺省字体
#define LV_THEME_DEFAULT_FONT_SMALL &lv_font_montserrat_14
#define LV_THEME_DEFAULT_FONT_NORMAL &lv_font_montserrat_14
#define LV_THEME_DEFAULT_FONT_SUBTITLE &lv_font_montserrat_14
#define LV_THEME_DEFAULT_FONT_TITLE &lv_font_montserrat_14
如果希望中文为主显示,可以修改缺省字体为lv_font_simsun_16_cjk,如下:
#define LV_THEME_DEFAULT_FONT_NORMAL &lv_font_simsun_16_cjk
如在之前某一篇帖子(https://bbs.eeworld.com.cn/thread-1200379-1-1.html)里提到过的,lvgl库自带的汉字太少,如果没有的汉字也不会留白,实际使用时往往不够使用,那么该如何处理呢,可以使用自制字体文件。
自制字体文件并不复杂,只要知道原理即可。
我们先打开一个字体文件,比如“lv_font_montserrat_8.c”,可以看到其实主体是由若干数组组成:
用于定义字符写法(图案形状)的gylph_bitmap
/*Store the image of the glyphs*/
static LV_ATTRIBUTE_LARGE_CONST const uint8_t gylph_bitmap[] = {
……
};
每个文字的偏移量lv_font_fmt_txt_glyph_dsc_t glyph_dsc
static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
……
};
从上述两个主要数组基本可以定义一个新的字体文件了。当然如果手写还是太过麻烦,建议自制一个工具实现。
|