|
LZ,我们使用的 LVGL 8.0.0 版本,运行在 Linux 系统中,使用 LvglFontTool V0.4 生成的 XBF 外部 BIN 文件,设置一行有中文、字母、数字的 label, 发现只有中文不能显示。如果使用的是 XBF 数组,就能正常显示。
以下为 __user_font_getdata 函数的实现。
- static uint8_t *__user_font_getdata(int offset, int size){
- static uint8_t tmp[10] = {0};
- static uint8_t *font_data = NULL;
-
- if(NULL == font_data){
-
- long len = get_file_size("/tmp/1.bin");
- if(-1 == len){
- printf("get file size failed.\n");
- return tmp;
- }
-
- font_data = (uint8_t*)malloc(len);
- if(NULL == font_data){
- printf("malloc %d byte failed.\n", len);
- return tmp;
- }
-
- FILE *fp = fopen("/tmp/1.bin", "rb");
- if(NULL == fp){
- printf("open file failed.\n");
- return tmp;
- }
- int bytes = fread(font_data, 1, len, fp);
- fclose(fp);
- printf("load font success: len:%ld bytes:%d\n", len, bytes);
-
- }
-
- return font_data+offset;
- }
复制代码 |
|