lvgl arc

目录

 

1.1 创建一个弧对象

1.2 设置弧的空间配置(颜色)

1.3 arc事件

1.4 效果图

a、初始状态

b、变化状态


1.1 创建一个弧对象

	//1.1 创建一个弧对象
	lv_obj_t *arc = lv_arc_create(lv_scr_act(), NULL);
	lv_arc_set_angles(arc, 0, 270); //设置Arc控件进度开始结束角度
	lv_obj_set_size(arc, 60, 60); //设置Arc控件大小
	lv_obj_align(arc, NULL, LV_ALIGN_IN_TOP_RIGHT, -20, 0); //对齐到屏幕中心,XY偏移0
	lv_obj_t *label = lv_label_create(arc, NULL); //在Arc控件上创建一个标签
	lv_obj_align(label, arc, LV_ALIGN_CENTER, 0, 0); //对齐到Arc控件中心
	lv_label_set_text(label, "Arc"); // 设置标签文本
	lv_obj_set_event_cb(arc, arc_event_handler);

 

1.2 设置弧的空间配置(颜色)

	static lv_style_t arc_style;
	lv_style_copy(&arc_style, &lv_style_plain);
	arc_style.line.color = LV_COLOR_BLUE;
	arc_style.line.width = 8;
	lv_arc_set_style(arc, LV_ARC_STYLE_MAIN, &arc_style);

1.3 arc事件

// Arc事件回调函数
static void arc_event_handler(lv_obj_t *obj, lv_event_t event)
{
    if (event == LV_EVENT_PRESSED)
	{
		static int16_t a = 0;

		angle = lv_arc_get_angle_end(obj);
		if (angle >= 360)
			angle = 0;
		else
			angle += 30;
		lv_arc_set_angles(obj, 0, angle);
	}
}

1.4 效果图

a、初始状态

b、变化状态

 

おすすめ

転載: blog.csdn.net/chenliang0224/article/details/112163611
おすすめ