[English]

Line (线条)(lv_line)

Overview(概述)

显示原文

The Line object is capable of drawing straight lines between a set of points.


线条(Line)控件能在给出的一组点之间绘制出相连的直线。

Parts and Styles(部分和样式)

显示原文
  • LV_PART_MAIN uses all the typical background properties and line style properties.


  • LV_PART_MAIN 使用所有典型的背景属性和线条样式属性。

Usage(用法)

Set points(设置点)

显示原文

The points have to be stored in an lv_point_precise_t array and passed to the object by the lv_line_set_points(lines, point_array, point_cnt) function.

Their coordinates can either be specified as raw pixel coordinates (e.g. {5, 10}), or as a percentage of the line's bounding box using lv_pct(x). In the latter case, the line's width/height may need to be set explicitly using lv_obj_set_width/height, as percentage values do not automatically expand the bounding box.


点必须存储在 lv_point_precise_t 类型的数组中,并通过 lv_line_set_points(lines, point_array, point_cnt) 函数将数组传递给line对象。

它们的坐标可以指定为原始像素坐标 (例如 {5, 10}),或使用 lv_pct(x) 设置线条边界的区域百分比(相对于父对象)。在后一种情况下,线的宽度/高度(可现实的最大区域)需要显式使用函数 ``lv_obj_set_width/height``设置, 作为百分比值不会自适应调整边界。

Auto-size(自动调整大小)

显示原文

By default, the Line's width and height are set to LV_SIZE_CONTENT. This means it will automatically set its size to fit all the points. If the size is set explicitly, parts on the line may not be visible.


默认情况下,线条的宽度和高度被设置为 LV_SIZE_CONTENT。也就是它会根据给出的点自动调整其大小来适应所有点的分布。如果你设置了宽、高,那么线条上的有些部分可能会不可见。

Invert y(反转 y轴)

显示原文

By default, the y == 0 point is in the top of the object. It might be counter-intuitive in some cases so the y coordinates can be inverted with lv_line_set_y_invert(line, true). In this case, y == 0 will be the bottom of the object. y invert is disabled by default.


默认情况下,y == 0 点是在line对象的顶部最左侧。这在某些情况下可能是不直观的(LCD坐标系),这时候可以使用 lv_line_set_y_invert(line, true) 函数来反转y坐标 。在这种情况下, y == 0 将是物体的底部最左侧(直角坐标系)。

默认不反转 y轴。

Events(事件)

显示原文

Only the Generic events are sent by the object type.

See the events of the Base object too.

Learn more about Events(事件).


线条对象仅发送 通用事件 。

另请参阅 基本对象 的事件。

详细了解更多 Events(事件)。

Keys(按键)

显示原文

No Keys are processed by the object type.

Learn more about Keys(按键).


线条对象不响应处理 *按键*(以及触摸)。

了解有关 Keys(按键) 的更多信息。

Example

[English]

Simple Line

#include "../../lv_examples.h"
#if LV_USE_LINE && LV_BUILD_EXAMPLES

void lv_example_line_1(void)
{
    /*Create an array for the points of the line*/
    static lv_point_precise_t line_points[] = { {5, 5}, {70, 70}, {120, 10}, {180, 60}, {240, 10} };

    /*Create style*/
    static lv_style_t style_line;
    lv_style_init(&style_line);
    lv_style_set_line_width(&style_line, 8);
    lv_style_set_line_color(&style_line, lv_palette_main(LV_PALETTE_BLUE));
    lv_style_set_line_rounded(&style_line, true);

    /*Create a line and apply the new style*/
    lv_obj_t * line1;
    line1 = lv_line_create(lv_screen_active());
    lv_line_set_points(line1, line_points, 5);     /*Set the points*/
    lv_obj_add_style(line1, &style_line, 0);
    lv_obj_center(line1);
}

#endif

API

lv_line.h

lv_types.h