static void set_angle(void* obj, int32_t v)
{
lv_arc_set_value(obj, v); //设置arc
}
- Create an arc which acts as a loader.
static void lv_example_arc_2(void)
{
/*Create an Arc*/
lv_obj_t* arc = lv_arc_create(lv_scr_act()); //创建ARC
lv_arc_set_rotation(arc, 270); // 旋转270
lv_arc_set_bg_angles(arc, 0, 360); //设置背景角度0~360
lv_obj_remove_style(arc, NULL, LV_PART_KNOB); /*Be sure the knob is not␣displayed*/
lv_obj_clear_flag(arc, LV_OBJ_FLAG_CLICKABLE); /*To not allow adjusting by click*/
lv_obj_center(arc); //居中显示
lv_anim_t a;
lv_anim_init(&a); //初时化动画变量
lv_anim_set_var(&a, arc); //设置动画对象为arc
lv_anim_set_exec_cb(&a, set_angle); //设置动画执行回调函数set_angle
lv_anim_set_time(&a, 1000); //调置动画时间为1秒
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE); /*Just for the demo*/
lv_anim_set_repeat_delay(&a, 500); // 设置动画500ms后重复执行
lv_anim_set_values(&a, 0, 100); // 设置start为0,end为100
lv_anim_start(&a); // 启动动画
}
- 运行效果图
