杰理-侧边的滑动条显示

该代码段展示了如何处理滑动条的显示与隐藏,基于结构体`slide_show_param`中的参数进行计算,根据滑动条的位置更新百分比,并通过`ui_vslider_set_persent_by_id`设置滑块的百分比。此外,提供了启用和禁用滑动条移动的函数。
摘要由CSDN通过智能技术生成

杰理-侧边的滑动条显示

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述


// struct slide_show_param{    //滑动条
//     u16 timer;      //定时器id
//     u32 id;         //需要显示控件的id
//     u16 min;        //top最顶上的值
//     u16 max;        //最顶上加最低下的值,绝对值
//     u8 move_flag;   //显示标志位,大于0显示
// };

struct slide_show_param slide;


void energy_slide(struct ui_grid *grid)
{
    struct rect rect;

    ui_core_get_element_abs_rect(&grid->item[0].elm , &rect);
    // printf(" %d ",rect.top);

    u16 cur = 0;
    u8 percent = 0;

    if(rect.top >= 0)
    {
        if(slide.min > rect.top)
            cur =  slide.min - rect.top;  
        else
            cur = 0;
    }
    else
    {
        cur = abs(rect.top) + slide.min;
    }
        
    // printf("-------- %d ",cur);  

    if(cur != 0)
        percent = (cur*100)/slide.max;
    else    
        percent = 0;
    

    if(percent >=97)
        percent =97;  //限制滑到最下面的时候最大为97,控件图片叠加颜色不一样
    
    percent = 100 - percent; //反过来显示   

    // printf("------------------ %d ",percent);

    if(slide.move_flag)
    {
        slide.move_flag -= 1;
        show_id_layout(slide.id);
        ui_vslider_set_persent_by_id(slide.id,  percent);
    }
    else    
    {
        hide_id_layout(slide.id);
    }
        

}

void show_slide_move(struct ui_grid *grid,bool enable)
{
    if(enable)
    {
        // key_ui_takeover(1);  //编码器控制--暂时放下
        if(slide.timer == 0)
        {
            slide.timer = sys_timer_add(grid,energy_slide,20);
        }
    }
    else
    {
        // key_ui_takeover(0);
        if(slide.timer)
        {
            sys_timer_del(slide.timer);
            slide.timer = 0;
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值