我使用的是lvgl8.3,系统rtos,内存资源16M。在页面上创建了一个obj控件,控件中放了一些obj,obj上再放了一些obj(带背景图片);然后滑动起来就比较卡顿的感觉(画面滚动很慢);请问这是什么原因呢,该怎么解决呢?谢谢大佬了
你有没有使用编码器解码图片,LVGL使用背景图片,如果你使用解码器解码图片,当控件滑动的时候,LVGL局部刷新,同时会去刷新图片。如果使用解码器且没有缓存图片到内存,LVGL会重新解码程序,导致卡顿。
我的解决方法:在lv_conf.h头文件中
/*Default image cache size. Image caching keeps the images opened.
*If only the built-in image formats are used there is no real advantage of caching. (I.e. if no new image decoder is added)
*With complex image decoders (e.g. PNG or JPG) caching can save the continuous open/decode of images.
*However the opened images might consume additional RAM.
0: to disable caching/
#define LV_IMG_CACHE_DEF_SIZE 100 //100 为缓存图片的数量
已经有些改善了,之前图片用的都是obj, imgbtn,这两个比较消耗资源;换成 img 控件后,就相对更好了
LV_USE_ASSERT_MEM_INTEGRITY和LV_USE_ASSERT_OBJ 把断言关了可以快点