使用LVGL 创建一个列表,存放不同的png图片,并保证列表滚动是顺畅的
时间: 2024-02-23 16:01:42 浏览: 150
图片列表制作工具
以下是使用LVGL创建一个列表并存放不同的PNG图像的示例代码。为了保证列表滚动的顺畅性,我们可以使用LVGL提供的异步图像加载功能来异步加载图像,避免阻塞UI线程。
```c
//创建列表
lv_obj_t * list = lv_list_create(lv_scr_act(), NULL);
lv_obj_set_size(list, LV_HOR_RES, LV_VER_RES);
//添加图像
const char * img_paths[] = {"path/to/image1.png", "path/to/image2.png", "path/to/image3.png"};
for (int i = 0; i < sizeof(img_paths)/sizeof(img_paths[0]); i++) {
//异步加载图像
lv_async_call(load_image_task, (void*)img_paths[i]);
}
//异步加载图像任务
static void load_image_task(void * path) {
lv_obj_t * img = lv_img_create(list, NULL);
lv_img_set_src(img, path);
lv_list_add_img(list, img, "Item Name", NULL);
}
```
在上面的示例代码中,我们首先创建了一个列表,并设置其大小为屏幕大小。然后,我们使用一个字符串数组存储不同PNG图像的文件路径。接下来,我们使用一个循环来遍历这个字符串数组,并调用异步任务来加载每个PNG图像。在异步任务中,我们创建了一个图像对象,并使用LVGL提供的异步图像加载功能来加载PNG图像。最后,我们将图像添加到列表中。
通过使用LVGL的异步图像加载功能,我们可以确保图像加载不会阻塞UI线程,从而保证列表滚动的顺畅性。
阅读全文