现在想实现在linux下LVGL制作的UI显示中文,由于.c的方案不适用于动态的改变字体大小,其他字体类型,tiny-ttf生成的字体效率又很慢,果断放弃,所以使用了freetype的方法,参考了lvgl.io文档编译成功了freetype,且在程序运行是freetype init成功+.ttf文件创建字体成功(通过没有返回错误认为创建成功了)代码如下
void lv_example_freetype_1(void)
{
/*Create a font*/
lv_font_t * font = lv_freetype_font_create("/data/Font/AlibabaPuHuiTi-3-55-Regular.ttf",
LV_FREETYPE_FONT_RENDER_MODE_BITMAP,//,
16,
LV_FREETYPE_FONT_STYLE_BOLD);//LV_FREETYPE_FONT_STYLE_NORMAL);
if(!font) {
LV_LOG_ERROR("freetype font create failed.");
return;
}
LV_LOG_USER("freetype font create SUCCESS.");
/*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'm a font created with FreeType 123——你好");
lv_obj_center(label);
}
但是在屏幕上没有显示任何数据;有大佬老师帮忙看一下嘛 .tff通过tiny_ttf创建的字体可以正常显示(个人认为这说明ttf文件没问题)