当前位置: 首页 > news >正文

LVGL第三方库的使用(中文库)

一、第三方库文档

3rd party libraries(第三方库) — LVGL 文档

FreeType 中文字库

SDL 模拟器使用freetype中文字库

1.开启字库

2.安装freetype 字库

sudo apt-get update sudo apt-get install libfreetype6-dev

3.修改makefile 添加字库

4.显示中文字体

修改TTF字体文件

把中文字体拷贝到LVGL工程中

 //修改为自己的中文字体 .ttf文件 👉./lvgl/examples/libs/freetype/simhei.ttf
  lv_font_t * font = lv_freetype_font_create("./lvgl/examples/libs/freetype/simhei.ttf",
                                               LV_FREETYPE_FONT_RENDER_MODE_BITMAP, 24, LV_FREETYPE_FONT_STYLE_NORMAL);
/**
 * Create a freetype font.
 * @param pathname font file path.
 * @param render_mode font render mode(see @lv_freetype_font_render_mode_t for details).
 * @param size font size.
 * @param style font style(see lv_freetype_font_style_t for details).
 * @return Created font, or NULL on failure.
 */
lv_font_t * lv_freetype_font_create(const char * pathname, lv_freetype_font_render_mode_t render_mode, uint32_t size,
                                    lv_freetype_font_style_t style);
pathname:字体文件路径 
render_mode :  渲染模式   👉LV_FREETYPE_FONT_RENDER_MODE_BITMAP 位图渲染模式 
        size:字体大小       
       style:字体样式    👉LV_FREETYPE_FONT_STYLE_NORMAL        普通样式   
       返回值: 成功 字体对象指针               
               失败  NULL 

demo例子

 /*Create a font*/
    lv_font_t * font = lv_freetype_font_create("./lvgl/examples/libs/freetype/simhei.ttf",
                                               LV_FREETYPE_FONT_RENDER_MODE_BITMAP, 24, LV_FREETYPE_FONT_STYLE_NORMAL);

    if(!font) {
        LV_LOG_ERROR("freetype font create failed.");
        return;
    }

    /*Create style with the new font*/
    static lv_style_t style;                               // 创建样式
    lv_style_init(&style);                                 // 初始化样式
    lv_style_set_text_font(&style, font);                  // 添加字体样式
    lv_style_set_text_align(&style, LV_TEXT_ALIGN_CENTER); // 设置字体居中

    /*Create a label with the new style*/
    lv_obj_t * label = lv_label_create(lv_screen_active());                    // 创建一个标签
    lv_obj_add_style(label, &style, 0);                                        // 给标签添加字体样式
    lv_label_set_text(label, "我爱中国! I Love China"); // 设置表的内容
    lv_obj_center(label);

二、ARM 使用freetype 字库

1. 下载 freetype 字库源码&交叉编译源码

20.移植Freetype字体库_freetype移植-CSDN博客 (有兴趣自己操作一下)

2.或者找一个配置好的库

1.解压交叉编译好的 freetype & zlib 字库到LVGL 工程中
 tar  -xvf   freetype_tmp.tar.gz    -C   ~/lv_port_linux/ 

3.修改Makefile 链接arm 版本的字库

4.下载到开发板中运行

出现错误

解决方法

把freetype_tmp/lib 中的所有文件下载到开发板中

下载字库文件



出现错误

解决方法

 👉/usr/share/fonts/DroidSansFallback.ttf 开发板默认字库文件,如果不想用该文件自己下载新的字库
  
 lv_font_t * font = lv_freetype_font_create("/usr/share/fonts/DroidSansFallback.ttf",
                                               LV_FREETYPE_FONT_RENDER_MODE_BITMAP, 24, LV_FREETYPE_FONT_STYLE_NORMAL);

至此,希望看完这篇文章的你有所收获,我是Bardb,译音八分贝,道友,下期见!

相关文章:

  • windows协议不再续签,华为再无windows可用,将于四月发布鸿蒙PC
  • Vue3 开发的 VSCode 插件
  • 996引擎 - 红点系统
  • 前端面试题---vue项目打包时, 内存不足了怎么办 为什么会出现这样的情况
  • SpringBoot事件驱动
  • 翻硬币问题
  • 【Docker compose】neo4j容器安装apoc插件
  • 医疗送药机器人“空间拓扑优化+动态算法决策+多级容错控制”三重链式编程技术解析与应用
  • 【WiFi 7核心技术及未来挑战】
  • 搭建刷题专业版小程序系统
  • 【机器学习chp13--(上)】人工神经网络(MLP结构 + KAN结构 + 卷积神经网络)
  • AI Agent 时代开幕-Manus AI与OpenAI Agent SDK掀起新风暴
  • 4.2 Reactive 对象的深度类型约束方案
  • 婚恋之红娘相亲小程序开发功能与设计详解
  • 福特售后再添亮点,为烈马模块化车身改装提供专业支持
  • Qt运行xxx.so can not open shared object file
  • MacOS 上使用终端彻底格式化 U 盘
  • 介绍HTTP协议基本结构与Linux中基本实现HTTPServer
  • 如何取消GitHub Copilot订阅付费?
  • 非零初始条件系统的传递函数分析
  • 免费网站素材下载/湖北seo公司
  • wordpress设置背景图案/seo网络优化平台
  • 长沙网站开发长沙网站建设/在线种子资源网
  • 新疆生产建设兵团工信委网站/北京关键词优化服务
  • 南京汽车 企业 网站建设/如何网络推广新产品
  • 网页搜索快捷键是ctrl加什么/seo技术