合宙Air724UG LuatOS-Air LVGL API控件--曲线 (Arc)

曲线 (Arc)

曲线控件,也可以称为弧。因为 Arc 本身就是弧,弧形的意思。根据控件的样子也能推测出它的使用场景,一般用在加载器(就是等待界面转的圈圈)或者数值显示,数值调节这些场景。曲线控件分了两个部分,前景和背景,都可以分别进行设置。

示例代码

-- 创建曲线

arc = lvgl.arc_create(lvgl.scr_act(), nil)

-- 设置尺寸

lvgl.obj_set_size(arc, 150, 150)

-- 设置位置居中

lvgl.obj_align(arc, nil, lvgl.ALIGN_CENTER, 0, 0)

-- 绘制弧度

lvgl.arc_set_end_angle(arc, 200)

创建

可以通过 lvgl.arc_create(par, copy) 创建一个曲线对象然后对其进行操作。

-- 创建控件

arc = lvgl.arc_create(lvgl.scr_act(), nil)

设置角度

曲线控件可以设置前景和背景的起始和终止角度,角度的取值范围是 0-360度,需要注意的是,0度是在三点钟方向,180度是在9点钟方向。

控件是有一些默认角度设置的,未设置到的角度都是采用的默认数值,所以尽管 示例代码 只是设置了一个终止角度,但还是绘制出了控件。因为背景采用了默认的起始和终止角度,所以按照样子绘制完毕后缺了一块,并不是说控件本身就长这个样子。下面我们重新设置下角度,看看效果:

lvgl.arc_set_bg_angles(arc, 0, 180)

lvgl.arc_set_angles(arc, 0, 90)

在上面的代码中,我们把背景的起始角度设置成了0-180度,把前景设置成了0-90度,绘制完毕之后就是这个样子:

注意:需要先绘制背景,然后才能绘制前景。

绑定数值

可以为曲线控件设置数值范围,然后通过设置值的方式设置控件的一个显示弧度,起始也就是对前景设置的函数做了一个封装,这样使用起来更加方便。

lvgl.arc_set_range(arc, 0, 100)

lvgl.arc_set_value(arc, 30)

将曲线的范围设置了 0-100, 然后将值设置为了 30,这个显示就占了整体长度的 30%。

控制

这个控件不光是可以显示,实际上也可以当成是一个输入控件。通过 lvgl.arc_set_adjustable 函数可以为控件添加一个可以滑动的旋钮。

lvgl.arc_set_adjustable(arc, true)

获取属性

曲线控件设置的很多值都可以通过 get 获取,具体使用情况可以参照 API。

事件

可以通过为控件添加回调函数来获取当前控件的事件。例如,可以通过 lvgl.EVENT_VALUE_CHANGED 获取当前值变化的一个情况。

event_handler = function(obj, event)

if event == lvgl.EVENT_VALUE_CHANGED then

print(lvgl.arc_get_value(obj))

end

end

lvgl.obj_set_event_cb(arc, event_handler)

API

lvgl.arc_create

调用 lvgl.arc_create(par, copy)

功能 创建弧对象

返回 指向创建的弧的指针

参数

par 指向对象的指针, 它将是新弧的父对象

copy 指向弧对象的指针, 如果不为 nil, 则将从其复制新对象

lvgl.arc_set_start_angle

调用 lvgl.arc_set_start_angle(arc, start)

功能 设置圆弧的起始角度。三点钟方向为 0 度。需要先绘制背景。

参数

arc 指向弧对象的指针

start 起始角度

lvgl.arc_set_end_angle

调用 lvgl.arc_set_end_angle(arc, end)

功能 设置圆弧的结束角度。

参数

arc 指向弧对象的指针

end 结束角度

lvgl.arc_set_angles

调用 lvgl.arc_set_angles(arc, start, end)

功能 设置开始和结束角度

参数

arc 指向弧对象的指针

start 起始角度

end 结束角度

lvgl.arc_set_bg_start_angle

调用 lvgl.arc_set_bg_start_angle(arc, start)

功能 设置弧形背景的起始角度。

参数

arc 指向弧对象的指针

start 起始角度

lvgl.arc_set_bg_end_angle

调用 lvgl.arc_set_bg_end_angle(arc, end)

功能 设置弧形背景的起始角度。

参数

arc 指向弧对象的指针

end 结束角度

lvgl.arc_set_bg_angles

调用 lvgl.arc_set_bg_angles(arc, start, end)

功能 设置弧形背景的开始和结束角度

参数

arc 指向弧对象的指针

start 起始角度

end 结束角度

lvgl.arc_set_rotation

调用 lvgl.arc_set_rotation(arc, rotation_angle)

功能 设置整个圆弧的旋转

参数

arc 指向弧对象的指针

rotation_angle 旋转角度

lvgl.arc_set_type

调用 lvgl.arc_set_type(arc, type)

功能 设置圆弧的类型。

参数

arc 指向弧对象的指针

type 圆弧类型

lvgl.ARC_TYPE_NORMAL

lvgl.ARC_TYPE_SYMMETRIC

lvgl.ARC_TYPE_REVERSE

lvgl.arc_set_value

调用 lvgl.arc_set_value(arc, value)

功能 在圆弧上设置一个新值

参数

arc 指向弧对象的指针

value 新值

lvgl.arc_set_range

调用 lvgl.arc_set_range(arc, min, max)

功能 设置圆弧的最小值和最大值

参数

arc 指向弧对象的指针

min 最小值

max 最大值

lvgl.arc_set_chg_rate

调用 lvgl.arc_set_chg_rate(arc, threshold)

功能 设置圆弧旋钮增量位置的阈值。

参数

arc 指向弧对象的指针

threshold 增量阈值

lvgl.arc_set_adjustable

调用 lvgl.arc_set_adjustable(arc, adjustable)

功能 设置圆弧是否可调。

参数

arc 指向弧对象的指针

adjustable 圆弧是否具有可以拖动的旋钮

lvgl.arc_get_angle_start

调用 lvgl.arc_get_angle_start(arc)

功能 获取圆弧的起始角度。

返回 起始角度[0...360]

参数

arc 指向弧对象的指针

lvgl.arc_get_angle_end

调用 lvgl.arc_get_angle_end(arc)

功能 获取圆弧的终止角度。

返回 端角[0...360]

参数

arc 指向弧对象的指针

lvgl.arc_get_bg_angle_start

调用 lvgl.arc_get_bg_angle_start(arc)

功能 获取弧形背景的起始角度。

返回 起始角度[0...360]

参数

arc 指向弧对象的指针

lvgl.arc_get_bg_angle_end

调用 lvgl.arc_get_bg_angle_end(arc)

功能 获取弧形背景的终止角度。

返回 端角[0...360]

参数

arc 指向弧对象的指针

lvgl.arc_get_type

调用 lvgl.arc_get_type(arc)

功能 获取圆弧是否为类型。

返回 弧形类型

参数

arc 指向弧对象的指针

lvgl.arc_get_value

调用 lvgl.arc_get_value(arc)

功能 获取圆弧的值

返回 弧的值

参数

arc 指向弧对象的指针

lvgl.arc_get_min_value

调用 lvgl.arc_get_min_value(arc)

功能 获得圆弧的最小值

返回 圆弧的最小值

参数

arc 指向弧对象的指针

lvgl.arc_get_max_value

调用 lvgl.arc_get_max_value(arc)

功能 获取圆弧的最大值

返回 弧的最大值

参数

arc 指向弧对象的指针

lvgl.arc_is_dragged

调用 lvgl.arc_is_dragged(arc)

功能 给出弧线是否被拖动

返回 true:拖动进行中,false:未拖动

参数

arc 指向弧对象的指针

lvgl.arc_get_adjustable

调用 lvgl.arc_get_adjustable(arc)

功能 获取圆弧是否可调。

返回 圆弧是否具有可以拖动的旋钮

参数

arc 指向弧对象的指针

相关推荐
l5317981512 年前
合宙Air724UG LuatOS-Air lvgl字库
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-截屏(Screenshots)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-图片(Gif)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-二维码(Qrcode)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-标签 (Label)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-窗口 (Window)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-图片 (Image)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-表格(Table)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-开关 (Switch)
air724ug
l5317981512 年前
合宙Air724UG LuatOS-Air LVGL API控件-页面 (Page)
air724ug