Lv_obj_t *Ec_bar = NULL; //电量进度条
#define EC_BAR_WIDTH_MAX 129
#define EC_BAR_HEIGHT_MAX 20
unsigned int Ec_cur = 0; //当前电量
unsigned char Ec_percent = 100; //电量百分比 0~100%
unsigned char Ec_bar_width_origin = 0; //原始宽度
/*
方法1:先用lv_obj_get_width、lv_obj_get_height获取图片的宽度和长度
再用lv_obj_set_size、lv_obj_set_width、lv_obj_set_height 设置图片的宽度
*/
void ec_bar_test(void)
{
unsigned char ec_bar_test = Ec_bar_width_origin * Ec_percent / 100; //获取Bar百分比宽度
lv_obj_set_width(Ec_bar, ec_bar_test); //设置Bar宽度
}
回调函数内
{
Ec_percent--;
if(Ec_percent <= 0)
{
Ec_percent = 100
}
}
void start(void)
{
if(flag == 0)
{
Lv_obj_t *Ec_bar = synwit_ui_find_lv_obj(?????);
Ec_bar_width_origin = lv_obj_get_width(Ec_bar);
}
}
LVGL 修改图片宽度或高度
最新推荐文章于 2024-11-06 17:51:39 发布
文章描述了一个用于显示电量的LVGL对象`Ec_bar`的初始化和更新过程。首先定义了最大宽度和高度,然后设置了当前电量`Ec_cur`和电量百分比`Ec_percent`。在`ec_bar_test`函数中,根据电量百分比动态调整进度条宽度。回调函数中,`Ec_percent`递减并循环回到100。在`start`函数中,查找并初始化`Ec_bar`对象。
6469

被折叠的 条评论
为什么被折叠?



