当前位置:网站首页>LVGL 8.2 Draw label with gradient color
LVGL 8.2 Draw label with gradient color
2022-07-04 14:35:00 【Fairy sword love】
Event handling callback function
static void add_mask_event_cb(lv_event_t* e)
{
static lv_draw_mask_map_param_t m;
static int16_t mask_id;
lv_event_code_t code = lv_event_get_code(e); // Get the event code generated by the object
lv_obj_t* obj = lv_event_get_target(e); // Get the object that generated the event
lv_opa_t* mask_map = lv_event_get_user_data(e); // Get the user data associated with the event object
if (code == LV_EVENT_COVER_CHECK) {
// LV_EVENT_COVER_CHECK event
lv_event_set_cover_res(e, LV_COVER_RES_MASKED); // Set up LV_COVER_RES_MASKED
}
else if (code == LV_EVENT_DRAW_MAIN_BEGIN) {
// LV_EVENT_DRAW_MAIN_BEGIN event
lv_draw_mask_map_init(&m, &obj->coords, mask_map);
mask_id = lv_draw_mask_add(&m, NULL); // add to mask Drawing parameters
}
else if (code == LV_EVENT_DRAW_MAIN_END) {
// LV_EVENT_DRAW_MAIN_END event
lv_draw_mask_free_param(&m); // Release mask Memory occupied by drawing parameters
lv_draw_mask_remove_id(mask_id); // remove mask Drawing parameters
}
}
Draw label with gradient color
#define MASK_WIDTH 100
#define MASK_HEIGHT 45
static void lv_example_label_4(void)
{
/* Create the mask of a text by drawing it to a canvas*/
static lv_opa_t mask_map[MASK_WIDTH * MASK_HEIGHT]; // mask map Array
/*Create a "8 bit alpha" canvas and clear it*/
lv_obj_t* canvas = lv_canvas_create(lv_scr_act()); // Create a canvas
lv_canvas_set_buffer(canvas, mask_map, MASK_WIDTH, MASK_HEIGHT, LV_IMG_CF_ALPHA_8BIT); // Set canvas data buffer
lv_canvas_fill_bg(canvas, lv_color_black(), LV_OPA_TRANSP); // The canvas is filled with black , Transparency is LV_OPA_TRANSP
/*Draw a label to the canvas. The result "image" will be used as mask*/
lv_draw_label_dsc_t label_dsc; // Draw descriptor variable definitions
lv_draw_label_dsc_init(&label_dsc);
label_dsc.color = lv_color_white(); // white
label_dsc.align = LV_TEXT_ALIGN_CENTER; // LV_TEXT_ALIGN_CENTER Alignment mode
lv_canvas_draw_text(canvas, 5, 5, MASK_WIDTH, &label_dsc, "Text with gradient"); // Draw text on the canvas
/*The mask is reads the canvas is not required anymore*/
lv_obj_del(canvas); // Delete canvas
/* Create an object from where the text will be masked out. * Now it's a rectangle with a gradient but it could be an image too*/
lv_obj_t* grad = lv_obj_create(lv_scr_act()); // Create objects
lv_obj_set_size(grad, MASK_WIDTH, MASK_HEIGHT); // Set size
lv_obj_center(grad); // Align center
lv_obj_set_style_bg_color(grad, lv_color_hex(0xff0000), 0); // Set the background
lv_obj_set_style_bg_grad_color(grad, lv_color_hex(0x0000ff), 0); // Set the gradient color value
lv_obj_set_style_bg_grad_dir(grad, LV_GRAD_DIR_HOR, 0);// Set the color gradient along the horizontal direction
lv_obj_add_event_cb(grad, add_mask_event_cb, LV_EVENT_ALL, mask_map);// Add all events
}
Running effect
边栏推荐
- R language uses follow up of epidisplay package The plot function visualizes the longitudinal follow-up map of multiple ID (case) monitoring indicators, and uses stress The col parameter specifies the
- ML:SHAP值的简介、原理、使用方法、经典案例之详细攻略
- Digi XBee 3 RF: 4个协议,3种封装,10个大功能
- Nowcoder rearrange linked list
- First experience of ViewModel
- C # WPF realizes the real-time screen capture function of screen capture box
- 商业智能BI财务分析,狭义的财务分析和广义的财务分析有何不同?
- 【MySQL从入门到精通】【高级篇】(五)MySQL的SQL语句执行流程
- [MySQL from introduction to proficiency] [advanced chapter] (IV) MySQL permission management and control
- An overview of 2D human posture estimation
猜你喜欢
Explain of SQL optimization
nowcoder重排链表
The failure rate is as high as 80%. What are the challenges on the way of enterprise digital transformation?
Xcode abnormal pictures cause IPA packet size problems
Talk about 10 tips to ensure thread safety
Leetcode 61: 旋转链表
sql优化之查询优化器
Compile oglpg-9th-edition source code with clion
《opencv学习笔记》-- 线性滤波:方框滤波、均值滤波、高斯滤波
Digi XBee 3 RF: 4个协议,3种封装,10个大功能
随机推荐
产业互联网则具备更大的发展潜能,具备更多的行业场景
R language uses the DOTPLOT function of epidisplay package to visualize the frequency of data points in different intervals in the form of point graph, and uses the by parameter to specify the groupin
【C语言】指针笔试题
Chapter 17 process memory
The game goes to sea and operates globally
LVGL 8.2 text shadow
AI and Life Sciences
使用CLion编译OGLPG-9th-Edition源码
One architecture to complete all tasks - transformer architecture is unifying the AI Jianghu on its own
Sqlserver functions, creation and use of stored procedures
WT588F02B-8S(C006_03)单芯片语音ic方案为智能门铃设计降本增效赋能
Alcohol driving monitoring system based on stm32+ Huawei cloud IOT design
opencv3.2 和opencv2.4安装
Digi XBee 3 RF: 4个协议,3种封装,10个大功能
R language ggplot2 visualization: gganimate package creates dynamic line graph animation (GIF) and uses transition_ The reveal function displays data step by step along a given dimension in the animat
leetcode:6109. Number of people who know the secret [definition of DP]
Some problems and ideas of data embedding point
Compile oglpg-9th-edition source code with clion
LVGL 8.2 Line
NowCoder 反转链表