用户工具

站点工具


icore4tlvgl_20
银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-12-14 yang 初次建立

实验二十:lv_line线条

一、线条

顾名思义,Line 对象能够在一组点之间绘制直线。线条控件只有一个主要部分,称为 LV_LABEL_PART_MAIN ,它使用所有线型样式属性。线条只支持通用事件。

二、设置节点列表

通常情况下,屏幕左上角为原点 (0, 0) ,横坐标x是水平方向向右变大,纵坐标y竖直向下变大,示意图如下:

了解屏幕与坐标的对应关系后,就可以通过下面的方式设置坐标点数组,坐标点对应的就是像素点。

static lv_point_t line_points[] = { {5, 5}, {70, 70}, {120, 10}, {180, 60}, {240, 10} };

这些点必须存储在 lv_point_t 数组中,并通过函数 lv_line_set_points(lines, point_array, point_cnt) 传递给线条对象,参数 point_cnt 为传入节点数,可以小于坐标点数组的个数。

三、尺寸自适应

线条对象可以根据其点自动设置大小。用户可以通过 lv_line_set_auto_size(line, true) 启用。如果启用,则在设置点后,将根据点之间的最大 x 和 y 坐标更改对象的宽度和高度。该自动调整大小功能默认情况为启用。

四、颠倒y轴

默认情况下,y = 0 点位于对象的顶部。在某些情况下,它可能与人类直观感受相反,因此可以使用 lv_line_set_y_invert(line, true) 来使y坐标轴反转。在这种情况下, y = 0 将是对象的底部。该反转功能默认情况下禁用。

void lv_gui_run(void){
	lvgl2rtt_init("lcd");                                      /* 初始化lvgl2rtt */
	                                                           /* 创建节点坐标数组 */
	static lv_point_t line_points[] = { {5, 5}, {70, 70}, {120, 10}, {180, 60}, {240,10} };
 
	static lv_style_t style_line;                              /* 创建一个样式 */
	lv_style_init(&style_line);                                /* 初始化样式 */
	lv_style_set_line_width(&style_line, LV_STATE_DEFAULT, 8); /* 设置线宽 */
	lv_style_set_line_color(&style_line, LV_STATE_DEFAULT, LV_COLOR_BLUE); /* 设置颜色 */
	lv_style_set_line_rounded(&style_line, LV_STATE_DEFAULT, true);/* 设置为圆角 */
 
	lv_obj_t * line = lv_line_create(lv_scr_act(), NULL);      /* 创建线条对象 */
	lv_line_set_points(line, line_points, 5);                  /* 设置传入点数 */
	lv_obj_add_style(line, LV_LINE_PART_MAIN, &style_line);    /* 应用样式 */
	lv_obj_align(line, NULL, LV_ALIGN_CENTER, 0, 0);           /* 设置位置 */
}
icore4tlvgl_20.txt · 最后更改: 2022/04/01 11:14 由 sean