一、log调试
#if LV_USE_LOG && LV_LOG_LEVEL >= LV_LOG_LEVEL_INFO
switch(src_type) {
case LV_IMG_SRC_FILE:
LV_LOG_TRACE("lv_img_set_src: `LV_IMG_SRC_FILE` type found");
break;
case LV_IMG_SRC_VARIABLE:
LV_LOG_TRACE("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found");
break;
case LV_IMG_SRC_SYMBOL:
LV_LOG_TRACE("lv_img_set_src: `LV_IMG_SRC_SYMBOL` type found");
break;
default:
LV_LOG_WARN("lv_img_set_src: unknown type");
}
#endif
以上不会有log输出,分析如下:
//lv_log.h
#ifndef LV_LOG_TRACE
# if LV_LOG_LEVEL <= LV_LOG_LEVEL_TRACE
# define LV_LOG_TRACE(...) _lv_log_add(LV_LOG_LEVEL_TRACE, __FILE__, __LINE__, __func__, __VA_ARGS__)
# else
# define LV_LOG_TRACE(...) do {}while(0)
# endif
#endif
#define LV_LOG_LEVEL_TRACE 0 /**< A lot of logs to give detailed information*/
#define LV_LOG_LEVEL_INFO 1 /**< Log important events*/
一旦 LV_LOG_LEVEL >= LV_LOG_LEVEL_INFO ——1,必定不会 <= LV_LOG_LEVEL_TRACE ——0。
只能将 && 后面的删掉,修改如下:
#if LV_USE_LOG //&& LV_LOG_LEVEL >= LV_LOG_LEVEL_INFO
二、无法显示图片,显示“No data”
代码如下:
lv_obj_t *bg = lv_img_create(sr1);
lv_obj_set_size(bg, 1920, 720);
//同时设置部件的起点坐标
lv_obj_set_pos(bg, 0, 0);
lv_img_set_src(bg, "S:/bgbmp.bmp");
首先要打开以下宏:
然后设置日志等级为 LV_LOG_LEVEL_INFO :
#define LV_LOG_LEVEL LV_LOG_LEVEL_INFO
发现日志输出有个警告:
看到源码,一分析就找到原因了:
修改后:
if(LV_COLOR_DEPTH == 32 && (b.bpp != 32 && b.bpp != 24))
三、PNG图片显示不了
出现如下报错:
解决办法:直接增大内存便可。
查看 lv_conf.h 文件:
由于我跑在linux系统上,所以使用系统接口 malloc 、free 等接口便行。修改如下:
#define LV_MEM_CUSTOM 1
觉得有帮助的话,打赏一下呗。。
需要商务合作(定制程序)的欢迎私信!!