littlevgl抗锯齿_「VGL」Littlevgl 显示汉字 - seo实验室
VGL
先生成字库文件,可以用官方在线工具
图片转换: https://littlevgl.com/image-to-c-array
字体转换: https://littlevgl.com/ttf-font-to-c-array
也可以用下面的字体生成工具。
https://download.csdn.net/download/xinxiaoci/10905909
字体相关的结构体成员
static const uint8_t glyph_bitmap[]={……}; // 点阵数据
static const lv_font_glyph_dsc_t glyph_dsc[]={}; // 字体描述 {字体宽度,字体在点阵数中的起始索引值}
static const uint32_t unicode_list[] = {}; // 对应的Unicode编码
填充结构体
lv_font_t basics_chinese_21 =
{
.unicode_first = 32,/* Unicode 最小编码 */
.unicode_last = 65292,/* Unicode 最大编码 */
.h_px = 21,/* 字体高度 */
.glyph_bitmap = glyph_bitmap,/* 字体点阵数据 */
.glyph_dsc = glyph_dsc,/* 字体点阵描述 宽度, */
.unicode_list = unicode_list,/* 字库所包含的Unicode编码列表 */
.get_bitmap = lv_font_get_bitmap_sparse,/* littlevgl 自带函数 */
.get_width = lv_font_get_width_sparse,/* littlevgl 自带函数 */
.bpp = 4,/* 抗锯齿 */
.next_page = NULL,/* 字体扩展指针 */
};
在头文件中调用 LV_FONT_DECLARE 宏声明自己定义的字体
LV_FONT_DECLARE(basics_chinese_21);
调用方法,在需要用到汉字的地方,创建新的样式 style ,在样式中修改字体,然后基于新样式创建对象。
void lv_chinese_fonts1(void)
{
/*concatenate the fonts into one*/
// lv_font_add(&arial_cyrillic_20, &arial_ascii_20); 相同高度才可以添加到一起
// lv_font_add(&arial_math_20, &arial_ascii_20);
/* 创建一个新的样式,并且修改新样式的文本字体 */
static lv_style_t style1;
lv_style_copy(&style1, &lv_style_plain);
style1.text.font = &basics_chinese_21; /* 设置自定义字体 */
/*Create a label and set new text*/
lv_obj_t * label = lv_label_create(lv_scr_act(), NULL); /* 创建标签 */
lv_obj_set_pos(label, 10, 10); /* 设置相对位置 */
lv_label_set_style(label, &style1); /* 设置样式 */
lv_label_set_text(label, "hello world!\n 世界你好,我是littleVGL!"); /* 显示汉字 */
}
在main函数中调用即可;
模拟器效果如下
相关阅读
使用各种嵌入式GUI时,总会遇到“汉字显示”“字体”这些关卡。
阅读本文前,最好已经了解Uincode,UTF-8,UTF-16,GBK,GB2312相关知识,
littlevgl抗锯齿_「VGL」Littlevgl 显示汉字 - seo实验室相关推荐
- littlevgl抗锯齿_「VGL」littlevGL:字体与汉字 - seo实验室
VGL 使用各种嵌入式GUI时,总会遇到"汉字显示""字体"这些关卡. 阅读本文前,最好已经了解Uincode,UTF-8,UTF-16,GBK,gb2312相 ...
- java 平均分配算法_「角平分线」Java 计算角平分线 - seo实验室
角平分线 有三个点,计算出角平分线.首先要算出两个点之间的方位角,根据方位角算出夹角.下面以角平分线长度是20示例计算. double dStartAngle = Math.atan2(mdE1 - ...
- python axes()_「axes」add_axes()——python绘图 - seo实验室
axes add_axes新增子区域 add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小 可以用来做一些子图,图中图 考虑如下代码: import numpy ...
- mysql时间戳diff函数_「timestampdiff」MySQL函数---TIMESTAMPDIFF - seo实验室
timestampdiff TIMESTAMPDIFF(Interval,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr2- date ...
- vlad用python实现_「vlad」VLAD算法简介 - seo实验室
vlad 1.1 vlad基础概念 VLAD是vector of locally aggregated descriptors的简称,是由Jegou et al.在2010年提出,其核心思想是agg ...
- python waitpid_「waitpid」wait(),waitpid()函数 - seo实验室
waitpid 首先我们来了解一下所谓的僵尸进程, 僵尸进程就是两个进程,一个父进程,一个子进程,其子进程终止后,0-3G的用户内存被回收,而3-4G的部分内存被回收,但是3-4G内存中的PCB等待父 ...
- mysql timestampdiff_「timestampdiff」MySQL timestampdiff()函数 - seo实验室
timestampdiff MySQL TIMESTAMPDIFF函数简介 下面说明了TIMESTAMPDIFF函数的语法. TIMESTAMPDIFF(unit,begin,end); TIMEST ...
- java uniqueresult_「uniqueresult」hibernate uniqueResult方法 - seo实验室
uniqueresult 数据库中根据你的查询条件只会返回唯一结果,就可以用uniqueresult这个方法!否则就用list():其返回类型为Object uniqueResult()方法通常是在业 ...
- python isalpha_「isalpha」Python isalpha()函数 - seo实验室
isalpha 描述 isalpha函数检测字符串中是否只包含字母.如果全部是字母组成的字符串,则返回True,否则返回False.isalpha()函数没有任何参数. 语法 str.isalpha( ...
- tomcat 不支持put 高版本_「MG6_DCT280」湿式七档双离合版本-性价比并不高
上汽名爵_MG6定义为「掀背式运动轿车」,设计感很有些英伦风格,性能也确实可圈可点.然而这台车只有MT版本值得选择,即使在新款升级"DCT280"湿式七档双离合变速箱后也不例外.因 ...
最新文章
- oracle 禁用外键
- Oracle在linux下使用小技巧
- 开发日记-20190327 关键词 intant run原理
- c语言,字符串原地翻转
- SpringBoot+Vue实现指定账号审批单据时前端进行语音播报
- C++结构与联合有和区别?
- 笨办法学习@ConditionalOnProperty 烧脑配置记录
- html输入字符长度佛下一句,js如何判断输入字符串长度
- SAP License:内部顾问的培养与成长
- 人工智能感知技术是机器人应用支撑技术之一
- js基础-17-解析url的函数,字符串出现的次数最多,并统计它出现几次
- Microsoft.mshtml.dll 添加引用及类型选择错误问题解决办法
- python 爬取热搜网教程 (上)
- Qt中打包程序运行时出现:0xc000007b错误
- 一道分蛋糕的joj题
- msf后渗透之文件交互指令、上传下载文件、屏幕截图、键盘记录、创建账户、音频录像和提权(上)
- JavaSE —— 000基础版
- 【千里之行,始于足下】大数据高频面试题——Hadoop篇(一)
- node.js+小程序基于微信小程序的校园失物招领系统毕业设计源码072343
- 考研院校选择的一些看法