mirror of
https://github.com/lvgl/lvgl.git
synced 2025-01-14 06:42:58 +08:00
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
CANVAS_WIDTH = 200
|
|
CANVAS_HEIGHT = 150
|
|
|
|
style = lv.style_t()
|
|
lv.style_copy(style, lv.style_plain)
|
|
style.body.main_color = lv.color_make(0xFF,0,0)
|
|
style.body.grad_color = lv.color_make(0x80,0,0)
|
|
style.body.radius = 4
|
|
style.body.border.width = 2
|
|
style.body.border.color = lv.color_make(0xFF,0xFF,0xFF)
|
|
style.body.shadow.color = lv.color_make(0xFF,0xFF,0xFF)
|
|
style.body.shadow.width = 4
|
|
style.line.width = 2
|
|
style.line.color = lv.color_make(0,0,0)
|
|
style.text.color = lv.color_make(0,0,0xFF)
|
|
|
|
# CF.TRUE_COLOR requires 4 bytes per pixel
|
|
cbuf = bytearray(CANVAS_WIDTH * CANVAS_HEIGHT * 4)
|
|
|
|
canvas = lv.canvas(lv.scr_act())
|
|
canvas.set_buffer(cbuf, CANVAS_WIDTH, CANVAS_HEIGHT, lv.img.CF.TRUE_COLOR)
|
|
canvas.align(None, lv.ALIGN.CENTER, 0, 0)
|
|
canvas.fill_bg(lv.color_make(0xC0, 0xC0, 0xC0))
|
|
|
|
canvas.draw_rect(70, 60, 100, 70, style)
|
|
|
|
canvas.draw_text(40, 20, 100, style, "Some text on text canvas", lv.label.ALIGN.LEFT)
|
|
|
|
# Test the rotation. It requires an other buffer where the orignal image is stored.
|
|
# So copy the current image to buffer and rotate it to the canvas
|
|
img = lv.img_dsc_t()
|
|
img.data = cbuf[:]
|
|
img.header.cf = lv.img.CF.TRUE_COLOR
|
|
img.header.w = CANVAS_WIDTH
|
|
img.header.h = CANVAS_HEIGHT
|
|
|
|
canvas.fill_bg(lv.color_make(0xC0, 0xC0, 0xC0))
|
|
canvas.rotate(img, 30, 0, 0, CANVAS_WIDTH // 2, CANVAS_HEIGHT // 2) |