在第二节中,我添加了按键的输入设备,其实其他输入设备也是一样,这次我们将输入设备应用到我们的屏幕中,用来控制控件的选中和控制。大家先去看第二篇文章,移植了按钮输入设备,再来看本文章。
1.介绍
在LVGL中我们可以使用键盘或编码器替换触摸板或鼠标控制。它的工作原理类似于 PC 上的 TAB 键,用于选择应用程序或网页中的元素。
5种输入设备类型:
LV_INDEV_TYPE_NONE 不使用输入设备(未初始化状态)
LV_INDEV_TYPE_POINTER 触摸板、鼠标、外接按钮
LV_INDEV_TYPE_KEYPAD 键盘
LV_INDEV_TYPE_BUTTON 分配给屏幕特定点的外部(硬件按钮)
LV_INDEV_TYPE_ENCODER 只有左、右和按下三个按键的编码器(比如鼠标中间的滚轮)
2.使用组(Groups)关联设备
2.1自定义组创建过程
首先要创建一个 组(Groups) : lv_group_t * g = lv_group_create();
然后将一个对象添加到 组(Groups) 中: lv_group_add_obj(g, obj);
最后要将组(Groups)与输入设备相关联: lv_indev_set_group(indev, g);
其中 indev 是 lv_indev_drv_register(); 的返回值
2.2使用默认组
lv_group_t * g = lv_group_create(); // 创建一个组
lv_group_set_default(g); // 设置为默认组
lv_indev_set_group(indev, g); // 将组和输入设备相关联
3.测试代码
/*按钮*/
void lv_100ask_demo_course_3_3_1()
{
/*创建一个组*/
lv_group_t * g= lv_group_create();
lv_group_set_default(g); // 设置默认组
lv_indev_set_group(indev_keypad, g); //将组和输入设备关联
/*添加四个按钮*/
lv_obj_t * continer = lv_obj_create(lv_scr_act());
lv_obj_set_size(continer,480,360);
lv_obj_t* button1 = lv_btn_create(continer);
lv_obj_center(button1);
lv_obj_t* button2 = lv_btn_create(continer);
lv_obj_align_to(button2, button1, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_obj_t* button3 = lv_btn_create(continer);
lv_obj_align_to(button3, button2, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
lv_obj_t* button4 = lv_btn_create(continer);
lv_obj_align_to(button4, button3, LV_ALIGN_OUT_BOTTOM_MID, 0, 20);
}