LVGL笔记17–lv_line线条
lv_line 线条简单来说是由多个点连接而成的对象,它可以通过 lv_obj_set_size 接口来设置固定的大小,也可以通过 lv_line_set_auto_size(line,true)接口来设置线条对象的大小自适应,它会根据其内部所有点中最大的 x 和 y 坐标来算出自身的大小,默认情况下,大小自适应功能是被使能了的,对于线条对象来说,其内部的所有点坐标默认情况下都是以其左上角为参考原点的,当然了,你可以通过 lv_line_set_y_invert(line, true)接口来反转 y 轴,从而使左下角变为参考原点.
注:创建出来的 lv_line 对象背景是透明的,而且也是没有边框的,上面图片中具有的黑色和红色边框是为了演示方便,才加上去的。
API函数接口
-
创建对象
/*-------------------------------------------------------------------------------- 这个函数用来创建lv_line对象 par: 父对象 copy: 拷贝的对象,如果无拷贝的话,传 NULL 值 返回值: 返回创建出来的对象,如果返回 NULL 的话,说明堆空间不够了 --------------------------------------------------------------------------------*/ lv_obj_t * lv_line_create(lv_obj_t * par, const lv_obj_t * copy);
-
设置坐标点集合
/*-------------------------------------------------------------------------------- 这个函数用来设置lv_line的坐标点(线是由点构成的,这里传入 point_num 个坐标点,就可以绘制出 point_num-1 条线) line: 线条对象 point_a: 坐标点集合,数组的形式,如下所示: const lv_point_t line_points[] = { {20, 30}, {70, 70}, {120, 10}}; point_num: 坐标点的个数 --------------------------------------------------------------------------------*/ void lv_line_set_points(lv_obj_t * line, const lv_point_t point_a[], uint16_t point_num);
-
是否使能大小自适应
/*-------------------------------------------------------------------------------- 这个函数用来设置lv_line对象大小自适应(默认情况下,线条对象的大小自适应功能是被使能了的,它会根据其内部所有点中最大的x 和 y 坐标来算出自身的大小,这个大小计算的过程其实是在 lv_line_set_points 接口内部完成 的) line: 线条对象 en: 是否使能 --------------------------------------------------------------------------------*/ void lv_line_set_auto_size(lv_obj_t * line, bool en);
-
是否设置y轴反转
/*-------------------------------------------------------------------------------- 这个函数用来设置lv_line对象是否y轴反转(默认情况下是以 lv_line 对象的左上角为参考原点的,如果你调用了 lv_line_set_y_invert接口来反转 y 轴的话,那么参考原点就会变为左下角) line: 线条对象 en: 是否使能 --------------------------------------------------------------------------------*/ void lv_line_set_y_invert(lv_obj_t * line, bool en);
-
设置样式
/*-------------------------------------------------------------------------------- 这个函数用来设置lv_line对象的样式(只有 style.line 字段才会被 lv_line 对象使用到) line: 线条对象 type: 设置哪一个部件的样式,目前就只有 LV_LINE_STYLE_MAIN 一个可选值 style: 样式 --------------------------------------------------------------------------------*/ static inline void lv_line_set_style(lv_obj_t * line, lv_line_style_t type, const lv_style_t * style);
2021–2--15–wrs