LVGL_基础控件Switch_Button
1、创建switch_button
lv_obj_t * sw = lv_switch_create(lv_scr_act());
lv_obj_center(sw);
2、修改未选中背景颜色
lv_obj_set_style_bg_color(sw, lv_color_hex(0xc43e1c), LV_PART_MAIN);
3、修改盒子内颜色大小
lv_obj_set_style_pad_all(sw, 5, LV_PART_MAIN);
lv_obj_set_style_pad_left(sw, 10, LV_PART_MAIN);
4、设置背景透明度和背景颜色
lv_obj_set_style_bg_opa(sw, 10, LV_PART_INDICATOR);
lv_obj_set_style_bg_color(sw, lv_color_hex(0xc43e1c), LV_PART_INDICATOR);
5、修改选中状态下的控件背景色
lv_obj_set_style_bg_color(sw, lv_color_hex(0x7719aa), LV_PART_INDICATOR | LV_STATE_CHECKED);
6、修改中间旋钮的颜色
lv_obj_set_style_bg_color(sw, lv_color_hex(0xc43e1c), LV_PART_KNOB);
7、修改控件大小
lv_obj_set_size(sw, 200, 100);
8、默认让控件处于选中的状态
lv_obj_clear_state(sw, LV_STATE_CHECKED);
lv_obj_add_state(sw, LV_STATE_CHECKED);
9、让控件保持当前状态不允许更改
lv_obj_clear_state(sw, LV_STATE_CHECKED);
lv_obj_add_state(sw, LV_STATE_DISABLED);
lv_obj_add_state(sw, LV_STATE_CHECKED | LV_STATE_DISABLED);
10、添加事件
lv_obj_add_event_cb(sw, sw_event_handler, LV_EVENT_VALUE_CHANGED, NULL);
static void sw_event_handler(lv_event_t * e)
{
lv_event_code_t code = lv_event_get_code(e);
lv_obj_t *sw = lv_event_get_target(e);
if (code == LV_EVENT_VALUE_CHANGED)
{
LV_LOG_USER("State: %s", lv_obj_has_state(sw, LV_STATE_CHECKED) ? "ON" : "OFF");
}
}
11、清除禁用状态
lv_obj_clear_state(sw, LV_STATE_DISABLED);
12、按键控制逻辑