lvgl v8之Styling the scrollbars

这段代码展示了如何使用LVGL库来定制滚动条的样式。通过创建不同的样式并应用到对象上,实现了滚动条宽度、透明度、颜色、边框等属性的变化,以及在滚动时的动态效果。代码中包含了滚动条静止和滚动状态下的两种不同样式。
摘要由CSDN通过智能技术生成

Styling the scrollbars

/**
* Styling the scrollbars
*/
static void lv_example_scroll_4(void)
{
    lv_obj_t* obj = lv_obj_create(lv_scr_act()); // 创建obj对象
    lv_obj_set_size(obj, 200, 100);   // 设置大小
    lv_obj_center(obj);        // 居中显示
    lv_obj_t* label = lv_label_create(obj);  // 在obj对象上创建label对象
    lv_label_set_text(label,
        "Lorem ipsum dolor sit amet, consectetur adipiscing elit.\n"
        "Etiam dictum, tortor vestibulum lacinia laoreet, mi neque consectetur neque, vel mattis odio dolor egestas ligula. \n"
        "Sed vestibulum sapien nulla, id convallis ex porttitor nec. \n"
        "Duis et massa eu libero accumsan faucibus a in arcu. \n"
        "Ut pulvinar odio lorem, vel tempus turpis condimentum quis. Nam consectetur condimentum sem in auctor. \n"
        "Sed nisl augue, venenatis in blandit et, gravida ac tortor. \n"
        "Etiam dapibus elementum suscipit. \n"
        "Proin mollis sollicitudin convallis. \n"
        "Integer dapibus tempus arcu nec viverra. \n"
        "Donec molestie nulla enim, eu interdum velit placerat quis. \n"
        "Donec id efficitur risus, at molestie turpis. \n"
        "Suspendisse vestibulum consectetur nunc ut commodo. \n"
        "Fusce molestie rhoncus nisi sit amet tincidunt. \n"
        "Suspendisse a nunc ut magna ornare volutpat."); // 设置文字内容
    /*Remove the style of scrollbar to have clean start*/
    lv_obj_remove_style(obj, NULL, LV_PART_SCROLLBAR | LV_STATE_ANY); 
    /*Create a transition the animate the some properties on state change*/
    static const lv_style_prop_t props[] = { LV_STYLE_BG_OPA, LV_STYLE_WIDTH, 0 };
    static lv_style_transition_dsc_t trans;
    lv_style_transition_dsc_init(&trans, props, lv_anim_path_linear, 200, 0, NULL);  // transition描述初时化
    /*Create a style for the scrollbars*/
    static lv_style_t style;  // 定义style静态变量
    lv_style_init(&style);  // style初时化
    lv_style_set_width(&style, 4); /*Width of the scrollbar*/
    lv_style_set_pad_right(&style, 5); /*Space from the parallel side*/
    lv_style_set_pad_top(&style, 5); /*Space from the perpendicular side*/
    lv_style_set_radius(&style, 2);   //设置倒角大小
    lv_style_set_bg_opa(&style, LV_OPA_70); //设置背景透明度
    lv_style_set_bg_color(&style, lv_palette_main(LV_PALETTE_BLUE)); //设置背景颜色
    lv_style_set_border_color(&style, lv_palette_darken(LV_PALETTE_BLUE, 3)); //设置边框颜色
    lv_style_set_border_width(&style, 2); //设置边框宽度
    lv_style_set_shadow_width(&style, 8); // 设置阴影宽度
    lv_style_set_shadow_spread(&style, 2); // 设置阴影延伸值
    lv_style_set_shadow_color(&style, lv_palette_darken(LV_PALETTE_BLUE, 1)); // 设置阴影颜色
    lv_style_set_transition(&style, &trans); //设置transition的风格
    /*Make the scrollbars wider and use 100% opacity when scrolled*/
    static lv_style_t style_scrolled; // 定义滚动静态style变量
    lv_style_init(&style_scrolled);  //初时化style
    lv_style_set_width(&style_scrolled, 8);  //设置style宽度值
    lv_style_set_bg_opa(&style_scrolled, LV_OPA_COVER); // 设置背景透明度
    lv_obj_add_style(obj, &style, LV_PART_SCROLLBAR);  //obj对象关联LV_PART_SCROLLBAR style  
    lv_obj_add_style(obj, &style_scrolled, LV_PART_SCROLLBAR | LV_STATE_SCROLLED); //obj对象关联滚动LV_PART_SCROLLBAR和LV_STATE_SCROLLED style
}

运行效果图

在这里插入图片描述

修改滚动style_scrolled宽度值

lv_style_set_width(&style_scrolled, 28);

再次运行效果值

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风雨依依

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值