LVGL-lv_img

#include "gui_user.h"

static void obj_event_cb(lv_obj_t * obj, lv_event_t event);
static void slider_event_cb(lv_obj_t * obj, lv_event_t event);
static void btn_event_cb(lv_obj_t * obj, lv_event_t event);
static lv_style_t style_beep_icon;
static lv_obj_t *image_beep;



static void obj_event_cb(lv_obj_t * obj, lv_event_t event)
{
	switch (event)
	{
	case LV_EVENT_DELETE:
		gui_hal_beep_duty_cycle(0);
		gui_hal_beep_switch(0);
		//printf("obj delete\n");
		break;
	default:
		break;
	}
}


lv_obj_t * app_beep_create(lv_obj_t *parent,void *user_data)
{
	(void)user_data;

	static lv_style_t style_label;

	lv_obj_t *obj = lv_app_common_int(lv_scr_act(), "BEEP");
	lv_obj_set_event_cb(obj, obj_event_cb);

	lv_obj_t *btn = lv_btn_create(obj,NULL);
	lv_obj_set_size(btn, 100, 100);
	lv_obj_align(btn, obj, LV_ALIGN_IN_TOP_MID, 0, 75);
	lv_btn_set_toggle(btn,true);
	lv_obj_set_event_cb(btn, btn_event_cb);
	lv_btn_set_style(btn, LV_BTN_STYLE_REL, &lv_style_transp);
	lv_btn_set_style(btn, LV_BTN_STYLE_PR, &lv_style_btn_ina);
	lv_btn_set_style(btn, LV_BTN_STATE_TGL_REL, &lv_style_transp);
	lv_btn_set_style(btn, LV_BTN_STATE_TGL_PR, &lv_style_btn_ina);

	image_beep = lv_img_create(btn, NULL);
	lv_img_set_src(image_beep, &beep_open);
	lv_style_copy(&style_beep_icon, lv_img_get_style(image_beep, LV_IMG_STYLE_MAIN));
	style_beep_icon.image.color = LV_COLOR_GRAY;
	style_beep_icon.image.intense = 255;
	lv_img_set_style(image_beep, LV_IMG_STYLE_MAIN, &style_beep_icon);

	lv_obj_t *slider = lv_slider_create(obj,NULL);
	lv_obj_align(slider,obj,LV_ALIGN_IN_TOP_MID,0,200);
	lv_obj_set_event_cb(slider, slider_event_cb);

	lv_style_copy(&style_label,&lv_style_plain_color);
	if (gui_current_theme == THEME_NEMO)
		style_label.text.color = LV_COLOR_WHITE;
	else
		style_label.text.color = LV_COLOR_BLACK;
	style_label.text.font = &gb2312_puhui16;
	lv_obj_t *label = lv_label_create(obj, NULL);
	lv_label_set_text(label,"打开测试即可,勿长时间打开");
	lv_obj_align(label, obj, LV_ALIGN_IN_TOP_MID, -130, 250);
	lv_label_set_style(label, LV_LABEL_STYLE_MAIN, &style_label);

	return obj;
}

static void slider_event_cb(lv_obj_t * obj, lv_event_t event)
{
	uint8_t value = 0;
	if (event == LV_EVENT_VALUE_CHANGED)
	{
		value = lv_slider_get_value(obj);
		gui_hal_beep_duty_cycle(value);
		//printf("value:%d\n", value);
	}
}

static void btn_event_cb(lv_obj_t * obj, lv_event_t event)
{
	uint32_t color = 0;
	if (event == LV_EVENT_VALUE_CHANGED)
	{
		if (lv_btn_get_state(obj) == LV_BTN_STATE_TGL_REL)
		{
			printf("LV_BTN_STATE_TGL_REL\n");
			/* open beep */
			gui_hal_beep_switch(1);
			//printf("LV_BTN_STATE_TGL_REL\n");
			//style_beep_icon.image.color = LV_COLOR_BLUE;
			style_beep_icon.image.intense = 0;		/* 重新着色的不透明度设置为0,就是原来的颜色 */
			lv_img_set_style(image_beep, LV_IMG_STYLE_MAIN, &style_beep_icon);
		}
		else if (lv_btn_get_state(obj) == LV_BTN_STATE_REL)
		{	
			printf("LV_BTN_STATE_REL\n");
			/* close beep */
			gui_hal_beep_switch(0);
			//printf("LV_BTN_STATE_TGL_REL\n");
			style_beep_icon.image.color = LV_COLOR_GRAY;
			style_beep_icon.image.intense = 255;
			lv_img_set_style(image_beep, LV_IMG_STYLE_MAIN, &style_beep_icon);
		}

	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值