lv_canvas_set_px(canvas,104,104,lv_color_hex3(0x000000),LV_OPA_100);画的点不显示
时间: 2025-01-19 09:12:30 浏览: 71
在使用 `lv_canvas_set_px` 函数绘制点时,如果点的颜色不显示,可能有以下几个原因:
1. **坐标超出画布范围**:`lv_canvas_set_px` 函数的坐标参数必须在画布的范围内。如果坐标超出范围,点将不会显示。
2. **颜色设置不正确**:确保颜色设置正确。`lv_color_hex3` 函数用于设置颜色,确保传入的颜色值是正确的。
3. **透明度设置问题**:透明度参数 `LV_OPA_100` 表示完全不透明。如果画布的透明度设置不正确,点可能不会显示。
4. **画布未刷新**:在绘制完成后,确保调用了 `lv_obj_invalidate(canvas)` 或 `lv_refr_now()` 函数来刷新画布。
以下是一个示例代码,展示了如何使用 `lv_canvas_set_px` 函数绘制点,并确保其正确显示:
```c
#include "lvgl.h"
void draw_point_on_canvas(lv_obj_t *canvas) {
// 设置点的坐标
lv_coord_t x = 104;
lv_coord_t y = 104;
// 设置点的颜色
lv_color_t color = lv_color_hex3(0x000000);
// 设置点的透明度
lv_opa_t opa = LV_OPA_100;
// 绘制点
lv_canvas_set_px(canvas, x, y, color, opa);
// 刷新画布
lv_obj_invalidate(canvas);
}
int main() {
// 初始化LVGL
lv_init();
// 初始化你的硬件驱动和显示缓冲区
// ...
// 创建画布
lv_obj_t *canvas = lv_canvas_create(lv_scr_act(), NULL);
lv_canvas_set_buffer(canvas, ...); // 设置画布缓冲区
lv_canvas_set_size(canvas, 200, 200); // 设置画布大小
// 绘制点
draw_point_on_canvas(canvas);
// 主循环
while (1) {
lv_task_handler();
// 延时
lv_tick_inc(5);
usleep(5000);
}
return 0;
}
```
阅读全文
相关推荐


















