Giter Club home page Giter Club logo

easy-ui's Introduction

Easy-UI

基于魔改的逐飞屏幕驱动,拙劣地模仿了稚晖君的MonoUI实现方式,参考了 createskyblue / OpenT12 项目UI所编写的一个UI。其中的按键库参考了 Zhewana / CommonKey 开源按键库,该按键库的链表结构给了我很大的启发。

样例

点这里

实现方式浅析

框架实现

菜单页面、项目、按键实现均采用链表方式,理论可无限扩展;

AddItem / AddPage 采用可变参数函数实现,实现输入不同func时获取不同的后续参数以初始化菜单。

屏幕驱动魔改 / 掉电存储

在逐飞的IPS114屏幕驱动基础上增加缓冲区,删除断言函数改为break处理;

参照u8g2增加部分显示函数,如绘制圆角方框等;

增加可设置颜色模式,支持正常与异或绘制,用以绘制反色指示器等;

每次系统初始化时判断flash内相应区域是否为空,若非空则读取一次数据。

‼️每次增减菜单结构请先擦除全片再进行烧录

此部分仅部分开源,完整代码后续会在工程项目中开源

相对MonoUI的一些更改

进度条

为了实现变量值修改时可更改步长,适配不同数量按键时统一的一套保存/放弃修改操作,我放弃了进度条的实现,更改后界面如下:

导航条

导航条原来是显示该页面所具有的栏目数量及当前所在栏目,但若栏目众多屏幕像素高度 / 栏目数量的结果不为整数时出来的效果我感觉不尽如人意,因此我将其更改为与反色指示器具有相同的位置计算,仅显示当前屏幕上指示器所在位置,也在一定程度上方便了在宽屏上,使用者一一对应左侧标题右侧状态的难易度。

部分菜单界面一览

初始界面

主界面

多选框界面

单选框界面(同一时刻只有一个能被选中)

开关界面

消息框绘制

easy-ui's People

Contributors

erbws avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.