目录
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、变化状态