#include "../../lv_examples.h" #if LV_USE_CANVAS && LV_BUILD_EXAMPLES #define CANVAS_WIDTH 80 #define CANVAS_HEIGHT 40 /** * Create a transparent canvas with transparency */ void lv_example_canvas_2(void) { lv_obj_set_style_bg_color(lv_screen_active(), lv_palette_lighten(LV_PALETTE_RED, 5), 0); /*Create a buffer for the canvas*/ static uint8_t cbuf[CANVAS_WIDTH * CANVAS_HEIGHT * 4]; /*Create a canvas and initialize its palette*/ lv_obj_t * canvas = lv_canvas_create(lv_screen_active()); lv_canvas_set_buffer(canvas, cbuf, CANVAS_WIDTH, CANVAS_HEIGHT, LV_COLOR_FORMAT_ARGB8888); lv_obj_center(canvas); /*Red background (There is no dedicated alpha channel in indexed images so LV_OPA_COVER is ignored)*/ lv_canvas_fill_bg(canvas, lv_palette_main(LV_PALETTE_BLUE), LV_OPA_COVER); /*Create hole on the canvas*/ uint32_t x; uint32_t y; for(y = 10; y < 20; y++) { for(x = 5; x < 75; x++) { lv_canvas_set_px(canvas, x, y, lv_palette_main(LV_PALETTE_BLUE), LV_OPA_50); } } for(y = 20; y < 30; y++) { for(x = 5; x < 75; x++) { lv_canvas_set_px(canvas, x, y, lv_palette_main(LV_PALETTE_BLUE), LV_OPA_20); } } for(y = 30; y < 40; y++) { for(x = 5; x < 75; x++) { lv_canvas_set_px(canvas, x, y, lv_palette_main(LV_PALETTE_BLUE), LV_OPA_0); } } } #endif