当前位置:网站首页>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
边栏推荐
- STM32F1与STM32CubeIDE编程实例-MAX7219驱动8位7段数码管(基于GPIO)
- Matters needing attention in overseas game Investment Agency
- GCC [6] - 4 stages of compilation
- No servers available for service: xxxx
- 数据湖(十三):Spark与Iceberg整合DDL操作
- MySQL的触发器
- LVLG 8.2 circular scrolling animation of a label
- 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
- ML:SHAP值的简介、原理、使用方法、经典案例之详细攻略
- Chapter 16 string localization and message Dictionary (2)
猜你喜欢
Incremental ternary subsequence [greedy training]
Count the running time of PHP program and set the maximum running time of PHP
ML之shap:基于boston波士顿房价回归预测数据集利用shap值对XGBoost模型实现可解释性案例
leetcode:6110. 网格图中递增路径的数目【dfs + cache】
统计php程序运行时间及设置PHP最长运行时间
flink sql-client. SH tutorial
[information retrieval] experiment of classification and clustering
迅为IMX6Q开发板QT系统移植tinyplay
C # WPF realizes the real-time screen capture function of screen capture box
Docker compose public network deployment redis sentinel mode
随机推荐
利用Shap值进行异常值检测
LVGL 8.2 Line
Wt588f02b-8s (c006_03) single chip voice IC scheme enables smart doorbell design to reduce cost and increase efficiency
Docker compose public network deployment redis sentinel mode
Digi XBee 3 rf: 4 protocols, 3 packages, 10 major functions
Nowcoder reverse linked list
R language dplyr package summary_ If function calculates the mean and median of all numerical data columns in dataframe data, and summarizes all numerical variables based on conditions
Progress in architecture
Abnormal value detection using shap value
Gin integrated Alipay payment
C language book rental management system
Practical puzzle solving | how to extract irregular ROI regions in opencv
Detailed analysis of pytorch's automatic derivation mechanism, pytorch's core magic
[information retrieval] experiment of classification and clustering
潘多拉 IOT 开发板学习(RT-Thread)—— 实验3 按键实验(学习笔记)
LVGL 8.2 keyboard
10. (map data) offline terrain data processing (for cesium)
迅为IMX6Q开发板QT系统移植tinyplay
Stm32f1 and stm32subeide programming example -max7219 drives 8-bit 7-segment nixie tube (based on GPIO)
LVGL 8.2 List