破炉而出——LVGL UI设计神器 anyui 之高阶组件
孙悟空吃了大量的巧克力豆后,在太上老君的炼丹炉中憋了七七四十九天,最终破炉而出,练就了火眼金睛,继七十二变和筋斗云之后第三大本领,省去了取经路上无数麻烦。试想如果没有孙悟空的火眼金睛,唐僧被抓走的次数得翻几番。可见,好的装备对于打怪效率的提高有多重要。
anyui
在炼了七七四十九天之后,练就的不是火眼金睛,而是另一个打BOSS(BOSS总是有很多需求)的高级装备——高阶组件。
什么是高阶组件?
在说高阶组件之前,先说什么是非高阶组件。
LVGL提供了40+的组件,从简单的按键到复杂点的图标仪表盘等。这些都可以视为非高阶组件,也就是基础组件,基础组件的功能受限于LVGL的能力。
尽管LVGL提供的基础组件很丰富,但每个组件提供的功能也比较单一。在实际项目中有很多场景需要的功能用基础组件实现却比较麻烦。
举个例子:
空调的触控面板都会有一个控制风量的按键(如果你说空调遥控器都是实体按键,嗯,那就麻烦直接划到文章底部点个赞就可以离开了图片),点击风量按键的时候档位会依次在“低、中、高、自动、低……”变化,每个档位会显示一个标签显示当前档位和一个表现风量大小的图标。这个场景很常见吧?其实类似的按键还有模式等。在其它产品上这样的状态按键也比比皆是。
例子说完了,用LVGL的基础组件怎么实现?有攻城狮笑了:这连编程狗都能做,有什么难的,弄个按键,弄个标签,弄个图片,在按键点击事件中设置图片标签,balabala……对于手撸LVGL C代码的大神,我不敢问这个问题,唯有献上膝盖,只是怕膝盖不够用。但如果是这样,那对一个LVGL界面设计软件来说,有点失职。
目前大多数LVGL界面设计软件是通过自定义代码让用户去自己实现的。是的,自定义代码很灵活,想干嘛就干嘛,因为这跟手撸代码没太大差别(可能还不如直接手撸)。但是不是可以有更好的办法?LVGL UI设计软件不就是为了提高界面设计效率而生的吗?
anyui