LittlVGL之线条控件

这里不对线条控件讲太多原理;看效果再讲LittlVGL之线条控件_第1张图片
就是这样,可以根据需求任意勾勒线条;可以根据数学公式也任意进行勾画;比如画椭圆,画⚪,当然这样会很麻烦;画线条线表还是很方便;
运用这个控件需要注意的是;对屏幕的像素点掌控一定要到位;数组里都是屏幕像素所在位置;
另外需要注意的是这个线条控件基于的父类;如果父类发生变化,则线条的相对位置也会发生变化,修改起来也是相当麻烦;;
代码解释如下:

void line_test(void)
{
    static const lv_point_t line_Ins[] = {{30,90} ,{30,25},{720,25},{720,450},{30,450},{30,85},{720,85},{720,145},{30,145},{30,210},{720,210},{720,270}
                                            {30,270} ,{720,270} ,{720,330} ,{30,330} ,{30,390} ,{720,390} ,{720,450} };
    /*Create new style (thick dark blue)*/
    static lv_style_t style_line;
    lv_style_copy(&style_line, &lv_style_plain);
    style_line.line.color = LV_COLOR_RED;
    style_line.line.width = 3;
    style_line.line.rounded = 1;

    /*Copy the previous line and apply the new style*/
    lv_obj_t * line1;
    line1 = lv_line_create(lv_scr_act(), NULL);     //获取屏幕对象
                                        //这里是对 line_Ins 判断数据的大小,再根据数据的字节大小,判断数组里面的数据多少,这样比直接去写数字更加便捷,可移植性高
    lv_line_set_points(line1, line_Ins, (sizeof(line_Ins)/sizeof(line_Ins[0])));//(sizeof(line_Ins)/sizeof(line_Ins[0])
                                                                                   
    lv_line_set_style(line1, LV_LINE_STYLE_MAIN, &style_line);  //设置样式,字体,线宽,圆角等
    lv_obj_align(line1, NULL, LV_ALIGN_CENTER, 0, 0);           //设置对齐方式;
}

具体工程代码链接如下:工程

你可能感兴趣的:(littleVGL,LittleVGL,STM32,图形化界面)