里飞网

 找回密码
 立即注册
查看: 3442|回复: 5
打印 上一主题 下一主题

LVGL8下汉字显示错位不全

[复制链接]

2

主题

11

帖子

46

积分

新手上路

Rank: 1

积分
46
跳转到指定楼层
楼主
发表于 2021-10-27 09:47:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 981378640 于 2021-10-27 14:11 编辑

我这边使用的LVGL8+freetype加载ttf字体,实际内容是“软件正在升级,请勿断电断网!”,但显示效果如下图,不是每次都是显示的如下结果,只是偶尔几次出现如下的结果,请求大神指点一下什么原因,附上代码
  1. void lv_gui_upgrade_display(int type)
  2. {
  3.     lv_obj_t *upgrade_bg_container = lv_obj_create(lv_scr_act()); // 基于屏幕创建了一个容器
  4.     if (upgrade_bg_container == NULL)
  5.     {
  6.         printf("[%s:%d] create upgrade_bg_container failed\n", __FUNCTION__, __LINE__);
  7.         return;
  8.     }

  9.     static lv_style_t style;
  10.     lv_style_reset(&style);
  11.     lv_style_init(&style); // 初始化样式
  12.     lv_style_set_radius(&style, 0); // 设置样式的圆角弧度
  13.     lv_style_set_border_width(&style, 0); // 设置边框宽度
  14.     lv_style_set_bg_opa(&style, LV_OPA_COVER); // 设置样式背景的透明度,不透明
  15.     lv_style_set_bg_color(&style, lv_color_hex(0x355EDC)); // 设置样式的背景色
  16.     lv_style_set_pad_all(&style, 0); // 设置样式内部padding填充宽度
  17.     lv_obj_add_style(upgrade_bg_container, &style, 0);  // 给对象添加样式
  18.     lv_obj_set_size(upgrade_bg_container, LV_PCT(100), LV_PCT(100));
  19.     lv_obj_center(upgrade_bg_container); // 对象居屏幕中间显示

  20.     lv_obj_t *text_label = lv_label_create(upgrade_bg_container);
  21.     if (text_label == NULL)
  22.     {
  23.         printf("[%s:%d] create text_label obj failed\n", __FUNCTION__, __LINE__);
  24.         return;
  25.     }

  26.     lv_obj_set_style_text_color(text_label, lv_color_white(), 0);
  27.     lv_obj_set_style_text_font(text_label, (const lv_font_t *)(ft_info_40.font), 0);
  28.     lv_obj_center(text_label);

  29.     switch (type)
  30.     {
  31.     case SOFTWARE_UPGRADE_START:
  32.         lv_label_set_text(text_label, "软件正在升级,请勿断电断网!"); // 设置文本内容
  33.         break;
  34.    
  35.     case SOFTWARE_UPGRADE_START_ENG:
  36.         lv_label_set_text(text_label, "Software is upgrading, do not power off!"); // 设置文本内容
  37.         break;

  38.     case OTA_UPGRADE_START:
  39.         lv_label_set_text(text_label, "系统正在OTA升级,请勿断电断网!"); // 设置文本内容
  40.         break;

  41.     case OTA_UPGRADE_START_ENG:
  42.         lv_label_set_text(text_label, "System is OTA upgrading, do not power off!"); // 设置文本内容
  43.         break;

  44.     default:
  45.         break;
  46.     }
  47. }
复制代码


OYH7@XE0XHLKHKTHVOSA)_P.png (593.72 KB, 下载次数: 695)

OYH7@XE0XHLKHKTHVOSA)_P.png

wqyMicroHeiProportional.zip

1.69 MB, 下载次数: 988

ttf字体文件压缩包

回复

使用道具 举报

2

主题

11

帖子

46

积分

新手上路

Rank: 1

积分
46
沙发
 楼主| 发表于 2021-10-27 09:51:39 | 只看该作者
本帖最后由 981378640 于 2021-10-27 14:09 编辑

附上ttf字体文件
回复

使用道具 举报

45

主题

290

帖子

2490

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2490
板凳
发表于 2021-10-27 10:32:05 | 只看该作者

这个应该是你哪里没有移植好,换官方字库有没有问题。
回复

使用道具 举报

2

主题

11

帖子

46

积分

新手上路

Rank: 1

积分
46
地板
 楼主| 发表于 2021-10-27 14:12:32 | 只看该作者
阿里兄 发表于 2021-10-27 10:32
这个应该是你哪里没有移植好,换官方字库有没有问题。

阿里兄,ttf字体文件附件已上传,麻烦帮我看下
回复

使用道具 举报

45

主题

290

帖子

2490

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2490
5#
发表于 2021-10-27 15:00:42 | 只看该作者
981378640 发表于 2021-10-27 14:12
阿里兄,ttf字体文件附件已上传,麻烦帮我看下

使用你的TTF文件,生成XBF全字库BIN测试,LVGL8模拟,使用你提供的代码测试。很正常,完全没问题。

注意要删除对象,lv_obj_del(upgrade_bg_container);,不能一直创建不删除啊。



回复

使用道具 举报

2

主题

11

帖子

46

积分

新手上路

Rank: 1

积分
46
6#
 楼主| 发表于 2021-10-28 15:09:43 | 只看该作者
阿里兄 发表于 2021-10-27 15:00
使用你的TTF文件,生成XBF全字库BIN测试,LVGL8模拟,使用你提供的代码测试。很正常,完全没问题。

注意 ...

好的,我试试,多谢阿里兄
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|里飞网  

GMT+8, 2024-4-24 05:08 , Processed in 0.101316 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

快速回复 返回顶部 返回列表