这里不对线条控件讲太多原理;看效果再讲
就是这样,可以根据需求任意勾勒线条;可以根据数学公式也任意进行勾画;比如画椭圆,画⚪,当然这样会很麻烦;画线条线表还是很方便;
运用这个控件需要注意的是;对屏幕的像素点掌控一定要到位;数组里都是屏幕像素所在位置;
另外需要注意的是这个线条控件基于的父类;如果父类发生变化,则线条的相对位置也会发生变化,修改起来也是相当麻烦;;
代码解释如下:
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); //设置对齐方式;
}
具体工程代码链接如下:工程