lvgl canvas

1. 下载一张bmp图像

图片链接

2. 调整图片的大小

具体操作详见:图片尺寸、像素修改

3. 在线生成lvgl图片点阵信息

链接:lvgl图片在线生成.c文件

4.将生成的图片image_dog.c文件放到lvgl工程中

5. 配置画布的大小,及显示的图片

LV_IMG_DECLARE(image_dog);
#define CANVAS_WIDTH  210
#define CANVAS_HEIGHT 160

6. 设置画布的缓冲区

7. 配置画布的样式

8.设置画布空间的位置

9. 设置图像在画布中的位置

10. 绘制矩形、文本、直线、多边形、圆

	//4.画布
	static lv_color_t cbuf[LV_CANVAS_BUF_SIZE_TRUE_COLOR(CANVAS_WIDTH, CANVAS_HEIGHT)];
	static lv_style_t canvas_style;
	//4.1 画布样式配置
	lv_style_copy(&canvas_style, &lv_style_plain);
	canvas_style.body.main_color = LV_COLOR_RED;
	canvas_style.body.grad_color = LV_COLOR_MAROON;
	canvas_style.body.radius = 4;
	canvas_style.body.border.width = 2;
	canvas_style.body.border.color = LV_COLOR_WHITE;
	canvas_style.body.shadow.color = LV_COLOR_WHITE;
	canvas_style.body.shadow.width = 4;
	canvas_style.line.width = 2;
	canvas_style.line.color = LV_COLOR_BLACK;
	canvas_style.text.color = LV_COLOR_BLUE;
	//4.2 创建一个画布对象
	lv_obj_t * canvas = lv_canvas_create(lv_scr_act(), NULL);
	//4.3 为画布设置一个缓冲区
	lv_canvas_set_buffer(canvas, cbuf, CANVAS_WIDTH, CANVAS_HEIGHT, LV_IMG_CF_TRUE_COLOR);
	//4.4 设置画布对齐位置
	lv_obj_align(canvas, NULL, LV_ALIGN_IN_BOTTOM_RIGHT, 0, 0);
	//4.5 设置画布背景色
	lv_canvas_fill_bg(canvas, LV_COLOR_WHITE);
	//4.6 在画布上绘画图像
	lv_canvas_draw_img(canvas, 0, 0, &image_dog, &canvas_style); //相对画布的位置
	//4.7 在画布上绘制一个矩形
	lv_point_t line_point[4];
	lv_canvas_draw_rect(canvas, 0, 0, 30, 30, &canvas_style);
	//4.8 在画布上绘制一个文本
	lv_canvas_draw_text(canvas, 40, 40, 200, &canvas_style, "WaveShare TEXT", LV_LABEL_ALIGN_CENTER);
	//4.9 绘制一条线
	line_point[0].x = 30;
	line_point[0].y = 40;
	line_point[1].x = 60;
	line_point[1].y = 80;
	lv_canvas_draw_line(canvas, line_point, 2, &canvas_style);
	//4.10 绘制一个多边形
	line_point[0].x = 100;
	line_point[0].y = 100;
	line_point[1].x = 120;
	line_point[1].y = 120;
	line_point[2].x = 100;
	line_point[2].y = 120;
	line_point[3].x = 120;
	line_point[3].y = 100;
	lv_canvas_draw_polygon(canvas, line_point, 4, &canvas_style);
	//4.11 绘制一个圆
	lv_canvas_draw_arc(canvas, 80, 80, 10, 0, 360, &canvas_style);

10.效果演示

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值