LittlVGL之线条控件

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

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);           //设置对齐方式;
}

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

Guess you like

Origin blog.csdn.net/weixin_43352501/article/details/115536284