在lvgl中提供了监听全局屏幕触摸事件,可以快速的实现屏保、屏幕唤醒功能。同时对于一些需要用到声音的项目也非常适合。
其主要就是在全局注册驱动的时候,增加一个回调函数。如下
/*Finally register the driver*/
lv_windows_disp = lv_disp_drv_register(&disp_drv);
static lv_indev_drv_t indev_drv;
lv_indev_drv_init(&indev_drv);
indev_drv.type = LV_INDEV_TYPE_POINTER;
indev_drv.read_cb = win_drv_read;
indev_drv.feedback_cb = lv_touch_feedback_cb;
lv_indev_drv_register(&indev_drv);
在注册驱动时,增加了 indev_drv.feedback_cb = lv_touch_feedback_cb 回调。
对应的函数:
void lv_touch_feedback_cb(lv_indev_drv_t * drv, uint8_t event)
{
if (event == LV_EVENT_PRESSED)
{
printf("touch\n");
}
}
这里的event 可以监听各种不同的事件,例如点击、长按、滚动等等,可以根据业务需求做出不同的反应。
效果如下: