环境是LVGL_V9.3,不确定低版本的能不能用
圆弧分为,背景,指示器,手柄

隐藏手柄
想用自定义图片显示,就需要先隐藏手柄
lv_obj_remove_style(arc, NULL, LV_PART_KNOB);//隐藏手柄
显示自己的手柄
然后选择自己想代替的图片,最好使用带透明度的png格式
注意:该图片最好在圆弧后初始化,可以覆盖在圆弧上面
lv_obj_t * img= lv_img_create(lv_scr_act()); // 在当前屏幕创建图片对象
lv_img_set_src(img, &my_image); // 设置图片资源
调用对齐
有两条对齐函数,在每次圆弧的值变化的时候调用一下就好
案例
lv_arc_rotate_obj_to_angle(arc,img,0);
函数解释
1. lv_arc_align_obj_to_angle
原型:
void lv_arc_align_obj_to_angle(const lv_obj_t *obj, lv_obj_t *obj_to_align, int32_t r_offset)
功能:
把一个对象 对齐到弧形控件(arc)当前的旋钮位置。
也就是说,它不会旋转对象,只是把对象放到弧上对应的点上。
参数解释:
- obj:指向弧形对象(arc)的指针。
- obj_to_align:指向需要对齐的对象指针,比如一个图片或按钮。
- r_offset:半径偏移量,可以让对象放在弧半径的外侧(>0)或内侧(<0)。
使用场景:
如果你有一个圆形表盘(arc),想在旋钮当前角度的位置放一个指示器、图标或按钮,这个函数很方便。它只是 改变对象的位置,不旋转对象本身。
2. lv_arc_rotate_obj_to_angle
原型:
void lv_arc_rotate_obj_to_angle(const lv_obj_t *obj, lv_obj_t *obj_to_rotate, int32_t r_offset)
功能:
把一个对象 旋转到弧形控件当前旋钮的位置。
这里不仅是位置对齐,还会 让对象本身旋转,通常用于指针、箭头或者小图标随旋钮转动。
参数解释:
- obj:指向弧形对象(arc)的指针。
- obj_to_rotate:指向需要旋转的对象指针。
- r_offset:同样是半径偏移量,控制对象距离弧中心的远近。
使用场景:
- 圆形表盘上的指针随旋钮旋转。
- 任何需要 随弧角度旋转的对象。
⚡ 区别总结
|
功能 |
lv_arc_align_obj_to_angle |
lv_arc_rotate_obj_to_angle |
|
位置 |
将对象放到弧上的对应点 |
同样会放到对应点(可有半径偏移) |
|
旋转 |
不旋转对象 |
对象旋转到与弧旋钮角度一致 |
|
用途 |
对齐位置,例如指示器或小图标 |
指针或箭头随弧旋钮旋转 |
912

被折叠的 条评论
为什么被折叠?



