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实验室相关推荐

  1. littlevgl抗锯齿_「VGL」littlevGL:字体与汉字 - seo实验室

    VGL 使用各种嵌入式GUI时,总会遇到"汉字显示""字体"这些关卡. 阅读本文前,最好已经了解Uincode,UTF-8,UTF-16,GBK,gb2312相 ...

  2. java 平均分配算法_「角平分线」Java 计算角平分线 - seo实验室

    角平分线 有三个点,计算出角平分线.首先要算出两个点之间的方位角,根据方位角算出夹角.下面以角平分线长度是20示例计算. double dStartAngle = Math.atan2(mdE1 - ...

  3. python axes()_「axes」add_axes()——python绘图 - seo实验室

    axes add_axes新增子区域 add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小 可以用来做一些子图,图中图 考虑如下代码: import numpy ...

  4. mysql时间戳diff函数_「timestampdiff」MySQL函数---TIMESTAMPDIFF - seo实验室

    timestampdiff TIMESTAMPDIFF(Interval,datetime_expr1,datetime_expr2) 返回日期或日期时间表达式datetime_expr2- date ...

  5. vlad用python实现_「vlad」VLAD算法简介 - seo实验室

    vlad 1.1  vlad基础概念 VLAD是vector of locally aggregated descriptors的简称,是由Jegou et al.在2010年提出,其核心思想是agg ...

  6. python waitpid_「waitpid」wait(),waitpid()函数 - seo实验室

    waitpid 首先我们来了解一下所谓的僵尸进程, 僵尸进程就是两个进程,一个父进程,一个子进程,其子进程终止后,0-3G的用户内存被回收,而3-4G的部分内存被回收,但是3-4G内存中的PCB等待父 ...

  7. mysql timestampdiff_「timestampdiff」MySQL timestampdiff()函数 - seo实验室

    timestampdiff MySQL TIMESTAMPDIFF函数简介 下面说明了TIMESTAMPDIFF函数的语法. TIMESTAMPDIFF(unit,begin,end); TIMEST ...

  8. java uniqueresult_「uniqueresult」hibernate uniqueResult方法 - seo实验室

    uniqueresult 数据库中根据你的查询条件只会返回唯一结果,就可以用uniqueresult这个方法!否则就用list():其返回类型为Object uniqueResult()方法通常是在业 ...

  9. python isalpha_「isalpha」Python isalpha()函数 - seo实验室

    isalpha 描述 isalpha函数检测字符串中是否只包含字母.如果全部是字母组成的字符串,则返回True,否则返回False.isalpha()函数没有任何参数. 语法 str.isalpha( ...

  10. tomcat 不支持put 高版本_「MG6_DCT280」湿式七档双离合版本-性价比并不高

    上汽名爵_MG6定义为「掀背式运动轿车」,设计感很有些英伦风格,性能也确实可圈可点.然而这台车只有MT版本值得选择,即使在新款升级"DCT280"湿式七档双离合变速箱后也不例外.因 ...

最新文章

  1. oracle 禁用外键
  2. Oracle在linux下使用小技巧
  3. 开发日记-20190327 关键词 intant run原理
  4. c语言,字符串原地翻转
  5. SpringBoot+Vue实现指定账号审批单据时前端进行语音播报
  6. C++结构与联合有和区别?
  7. 笨办法学习@ConditionalOnProperty 烧脑配置记录
  8. html输入字符长度佛下一句,js如何判断输入字符串长度
  9. SAP License:内部顾问的培养与成长
  10. 人工智能感知技术是机器人应用支撑技术之一
  11. js基础-17-解析url的函数,字符串出现的次数最多,并统计它出现几次
  12. Microsoft.mshtml.dll 添加引用及类型选择错误问题解决办法
  13. python 爬取热搜网教程 (上)
  14. Qt中打包程序运行时出现:0xc000007b错误
  15. 一道分蛋糕的joj题
  16. msf后渗透之文件交互指令、上传下载文件、屏幕截图、键盘记录、创建账户、音频录像和提权(上)
  17. JavaSE —— 000基础版
  18. 【千里之行,始于足下】大数据高频面试题——Hadoop篇(一)
  19. node.js+小程序基于微信小程序的校园失物招领系统毕业设计源码072343
  20. 考研院校选择的一些看法

热门文章

  1. 京东VS淘宝:待付款订单-再次支付方案对比
  2. 家谱制作软件如何成谱编修流程
  3. 谱瑞PS8625替代方案|PS8622替代方案|高性价比EDP转LVDS转接板方案CS5211设计开发
  4. 销售人员必看~~三个经典电话销售案例
  5. 读取xlsx文件错误
  6. PHP base64转图片
  7. 同时新增一个订单与多个明细的方法
  8. html5 微信播放语音,html5的audio实现高仿微信语音播放效果
  9. python 对 PDF 的拆分 和合并
  10. 基于iTextSharp库的PDF文件拆分、合并(C#)