LVGL lv_switch开关(17)

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);
}

在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值