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,译音八分贝,道友,下期见!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bardb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值