lv_switch
lv_switch本质是lv_slider,先关API在lv_switch.h
样式
其实和lv_slider一样
/**
* Switch parts.
*/
enum {
LV_SWITCH_PART_BG = LV_BAR_PART_BG, /**< Switch background. */
LV_SWITCH_PART_INDIC = LV_BAR_PART_INDIC, /**< Switch fill area. */
LV_SWITCH_PART_KNOB = _LV_BAR_PART_VIRTUAL_LAST, /**< Switch knob. */
_LV_SWITCH_PART_VIRTUAL_LAST
};
例子
static void event_handler(lv_obj_t * obj, lv_event_t event)
{
if(event == LV_EVENT_VALUE_CHANGED) {
printf("State: %s\n", lv_switch_get_state(obj) ? "On" : "Off");
}
}
void lv_ex_switch_1(void)
{
static lv_style_t sw_bg_style;//背景的样式
static lv_style_t sw_indic_style;//指示器的样式
static lv_style_t sw_knob_style;//旋钮的样式
lv_style_init(&sw_bg_style);
lv_style_set_outline_color(&sw_bg_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(0xCC, 0xCC, 0xCC));
lv_style_init(&sw_indic_style);
lv_style_set_bg_color(&sw_indic_style, LV_STATE_DEFAULT, LV_COLOR_MAKE(0x65, 0xC4, 0x66));
lv_style_init(&sw_knob_style);
lv_style_set_bg_color(&sw_knob_style, LV_STATE_DEFAULT, LV_COLOR_WHITE);
/*Create a switch and apply the styles*/
lv_obj_t *sw1 = lv_switch_create(lv_scr_act(), NULL);
lv_obj_add_style(sw1, LV_SWITCH_PART_BG, &sw_bg_style);
lv_obj_add_style(sw1, LV_SWITCH_PART_INDIC, &sw_indic_style);
lv_obj_add_style(sw1, LV_SWITCH_PART_KNOB, &sw_knob_style);
lv_obj_set_size(sw1,100,50);
lv_obj_align(sw1, NULL, LV_ALIGN_CENTER, 0, -50);
lv_obj_set_event_cb(sw1, event_handler);
/*Copy the first switch and turn it ON*/
lv_obj_t *sw2 = lv_switch_create(lv_scr_act(), sw1);
lv_switch_on(sw2, LV_ANIM_ON);
lv_obj_align(sw2, NULL, LV_ALIGN_CENTER, 0, 50);
}