CN107168715B - 一种智能终端菜单主题gui引擎实现方法 - Google Patents
一种智能终端菜单主题gui引擎实现方法 Download PDFInfo
- Publication number
- CN107168715B CN107168715B CN201710377620.0A CN201710377620A CN107168715B CN 107168715 B CN107168715 B CN 107168715B CN 201710377620 A CN201710377620 A CN 201710377620A CN 107168715 B CN107168715 B CN 107168715B
- Authority
- CN
- China
- Prior art keywords
- window
- layer
- gui
- menu
- intelligent terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种智能终端菜单主题GUI引擎实现方法,包括如下步骤:(1)主程序启动;(2)加载主题资源数据包;(3)解析菜单拓扑结构;(4)当APP需打开某个窗口时,从配置表读取该窗口配置信息;(5)根据窗口的类型和参数调用GUI系统抽象层创建窗口并设置回调;(6)GUI抽象层调用系统图形引擎绘制OSD图层;(7)将OSD图层和视频层混合并送显示器。
Description
技术领域
本发明涉及智能智能终端技术领域,尤其涉及一种智能终端菜单主题GUI引擎实现方法。
背景技术
随着智能硬件价格越来越低廉的智能终端的市场规模呈现出爆炸式的增长趋势。单一风格的操作菜单已经难以满足用户群体广阔的市场需求,如何将功能相同的智能终端产品迅速适用不同国籍、不同文化背景、不同年龄层次等等的用户群体操作习惯和色彩认同,就成为我们研发的关键。
传统技术智能终端的菜单主题往往和系统固件高度集成,用户想更换菜单的主题就必须进行系统升级或更换,操作麻烦并且有一定系统更新失败的风险,容易造成机器损坏甚至机器报废。
同一款产品平移到不同市场时,由于用户群体间文化习惯不同,需要重新定制菜单的风格、主色调、样式等,传统技术通常需要重构UI部分,开发周期长,非常不利于迅速占领市场。
发明内容
本发明针对现有技术中的不足,提供一种智能终端菜单主题GUI引擎实现方法。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种智能终端菜单主题GUI引擎实现方法,包括如下步骤:
(1)主程序启动;
(2)加载主题资源数据包;
(3)解析菜单拓扑结构;
(4)当APP需打开某个窗口时,从配置表读取该窗口配置信息;
(5)根据窗口的类型和参数调用GUI系统抽象层创建窗口并设置回调;
(6)GUI抽象层调用系统图形引擎绘制OSD图层;
(7)将OSD图层和视频层混合并送显示器。
进一步地,步骤(2)中的数据包是GUI系统中UI资源与交互逻辑设计两个数据的整合,用户在更换主题皮肤同时也能更换交互方式。
进一步地,步骤(3)中,菜单拓扑结构为菜单窗口ID的ID树,避免每次打开窗口都要重新解析配置表,以此加快窗口在打开过程中UI资源定位速度从而提升UI响应速度。
进一步地,步骤(4)中,从配置表读取该窗口配置信息,包括图片、控件、尺寸、RGB、回调函数ID及其参数数据。
进一步地,步骤(4)中,窗口配置信息包括UI皮肤资源及回调函数ID两部分,每个回调函数的实现都预制在app中,每个ID都映射一个功能函数,app在运行过程跟据ID加载对应的callback函数指针,所有回调函数类型统一,应用层通过实现get_func_by_id从ID-FUNC映射表中获得对应功能函数的指针。
进一步地,步骤(5)中,GUI抽象层对所有窗口、控件等UI部件定义以及封装,定义内容包括窗口内部事件触发时序、外部事件触发条件以及内外部事件间的联系,UI抽象层向应用层提供窗口、控件的创建、管理、隐藏、销毁等全生命周期的方法封装,GUI需要依赖系统层提供在图层上画点、线、着色等基础能力。
进一步地,步骤(6)、(7)中,GUI抽象层根据上层应用事件的触发,将所有绘图任务通过调用系统底层图形引擎绘制到OSD图层缓存中,最后和视频层图层(OSD根据alpha值叠加在视频层之上)混合并送入显存。
在本发明的智能终端菜单主题GUI引擎实现方法中,针对智能终端菜单UI的特殊使用场景,抽象出GUI层,将菜单中的所有常用控件(如:下拉条、列表、按钮、日历等等)抽象出模型并高度封装。应用UI开发人员只需要关注视图内的交互逻辑设计,视图的效果由GUI引擎根据UI资源文件自动完成渲染,从而大大缩短智能终端应用的开发周期。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
附图1是本发明的主思路框图;
附图2是本发明的窗口渲染流程图;
附图3是本发明的消息处理时序图;
附图4是本发明窗口打开流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见附图1,可用于智能终端个性化菜单主题的GUI引擎的实现方法,主要用于高度分离智能终端应用的控制与视图设计,包括如下步骤:主程序启动S1,加载主题资源数据包S2,解析菜单拓扑结构S3,从配置表读取该窗口配置信息S4,根据窗口的类型和参数调用GUI系统抽象层创建窗口并设置回调S5,GUI抽象层调用系统图形引擎绘制OSD图层S6,将OSD图层和视频层混合并送显示器S7。
智能终端开机进入主程序之后参考附图4,读取并解析主配置xml文件。配置文件包含该款产品所有可见视图的UI资源信息。每个视图由主窗口、控件、消息框等组成。每个控件ID根据方位以主窗口为根以树形数据结构存储。每个窗口的属性以key-value的数据结构存储。定义根视图ID为1001,读取跟视图数,创建主窗口及控件,根据回调ID设置根视图的自定义消息响应函数,渲染根视图,进入事件循环。
进入视图渲染函数后(参见附图2),
1.首先清除OSD图层;
2.主窗口根据大小、形状、背景色等属性绘制主窗口。如果背景是整张图片则调用底层图片解析库将图片bitmap数据解析至OSD图层。
3.从主窗口句柄中,找到与之关联的控件依次绘制控件到OSD图层。如果控件alpha值与主窗口不一致则以主窗口为准。
4.将OSD图层与视频层混合送显。
窗口打开后,用户按键操作或者系统发送消息到事件分发函数(参考附图3),则消息按如下时序处理:
1.首先,事件分发器将消息发送至活动窗口注册的自定义事件处理函数,此函数如果处理了该消息并且希望消息继续向下传递则返回0,不向下传递返回-1。
2.当自定义返回为0时,GUI系统自动调用主窗口默认函数处理。
3.如果主窗口默认处理也返回0时,GUI系统自动调用焦点所在控件的默认处理函数。
4.最后逐级返回至消息分发函数。
主窗口及控件的封装方法:
定义它们的公共属性:左顶点横坐标(x)、左顶点纵坐标(y)、宽(width)、高(height)、水平边框宽度(bwh)、垂直边框宽度(bwv)、背景填充图片ID(bgpid)、背景填充模式(bgfm)、标题填充图片ID(tpid)、标题填充模式(tpfm)、标题高度(title_height)、背景色RGB值(bg_color)、标题RGB值(title_color)、标题文字(title)、字体大小(font_size)、字体颜色(font_color)、透明度(alpha)、事件处理函数指针(call_back)。
主窗口特有属性:控件列表(subwnd_list)、是否为模态窗口(is_model)、是否需要重绘(is_redraw)。
控件公共属性:控件类型(type)、控件数据列表(data_list)、是否能获得焦点(is_able)、是否获得焦点(is_active)、焦点填图(focus_bg_pic)、焦点填充背景色(focus_bg_color)、焦点文字颜色(focus_font_color)、disable后的背景填图(disable_bg_pic)、disable后的背景色(disable_bg_color)、disable后文字颜色(disable_font_color)。
列表控件特有属性:滑动条宽(slider_width)、滑动条图标(slider_icon)、滑动条底框图标(slider_bg_icon)、是否有水平滑动条(bhslider)、是否有垂直滑动条(bvslider)。
表格控件特有属性:行数(nrow),列数(ncolumn)、滑动条宽(slider_width)、滑动条图标(slider_icon)、滑动条底框图标(slider_bg_icon)、是否有水平滑动条(bhslider)、是否有垂直滑动条(bvslider)。
其他按钮、编辑框、静态文本框、下拉框等于其他GUI封装方法相同。
月历控件实际是由以上控件组合而成的一个特殊窗口,其本质是窗口,另外,在其退出时会向父窗口传递当前的“yyyy-MM-DD”数据。其特有属性有:向左翻页按钮图标(left_page_icon)、向右翻页按钮图标(right_page_icon)、按钮的宽(btn_width)、按钮的高(btn_height)。
应该理解,尽管参考其示例性的实施方案,已经对本发明进行具体地显示和描述,但是本领域的普通技术人员应该理解,在不背离由权利要求书所定义的本发明的精神和范围的条件下,可以在其中进行各种形式和细节的变化,可以进行各种实施方案的任意组合。
Claims (1)
1.一种智能终端菜单主题GUI引擎实现方法,其特征在于:包括如下步骤:
(1)主程序启动;
(2)加载主题资源数据包;
(3)解析菜单拓扑结构;
(4)当APP需打开某个窗口时,从配置表读取该窗口配置信息;
(5)根据窗口的类型和参数调用GUI系统抽象层创建窗口并设置回调;
(6)GUI抽象层调用系统图形引擎绘制OSD图层;
(7)将OSD图层和视频层混合并送显示器;
步骤(2)中的数据包是GUI系统中UI资源与交互逻辑设计两个数据的整合,用户在更换主题皮肤同时也能更换交互方式;
步骤(3)中,菜单拓扑结构为菜单窗口ID的ID树,避免每次打开窗口都要重新解析配置表,以此加快窗口在打开过程中UI资源定位速度从而提升UI响应速度;
步骤(4)中,从配置表读取该窗口配置信息,包括图片、控件、尺寸、RGB、回调函数ID及其参数数据;
步骤(4)中,窗口配置信息包括UI皮肤资源及回调函数ID两部分,每个回调函数的实现都预制在app中,每个ID都映射一个功能函数,app在运行过程跟据ID加载对应的callback函数指针,所有回调函数类型统一,应用层通过实现get_func_by_id从ID-FUNC映射表中获得对应功能函数的指针。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710377620.0A CN107168715B (zh) | 2017-05-25 | 2017-05-25 | 一种智能终端菜单主题gui引擎实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710377620.0A CN107168715B (zh) | 2017-05-25 | 2017-05-25 | 一种智能终端菜单主题gui引擎实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107168715A CN107168715A (zh) | 2017-09-15 |
CN107168715B true CN107168715B (zh) | 2020-09-15 |
Family
ID=59821622
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710377620.0A Active CN107168715B (zh) | 2017-05-25 | 2017-05-25 | 一种智能终端菜单主题gui引擎实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107168715B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107632756A (zh) * | 2017-09-29 | 2018-01-26 | 深圳市元征科技股份有限公司 | 程序菜单显示方法及终端 |
CN108132786B (zh) * | 2017-12-21 | 2021-03-30 | 广州路派电子科技有限公司 | 一种基于osd的gui设计方法 |
CN111273972A (zh) * | 2018-12-04 | 2020-06-12 | 珠海格力电器股份有限公司 | 一种窗口管理方法、装置、存储介质及终端 |
CN111435978A (zh) * | 2018-12-26 | 2020-07-21 | 杭州海康威视数字技术股份有限公司 | 一种叠加osd的方法、装置及电子设备 |
CN112506500B (zh) * | 2020-12-03 | 2022-08-23 | 武汉蓝星科技股份有限公司 | 一种可视化控件创建方法及装置 |
CN113050899B (zh) * | 2021-02-07 | 2022-09-27 | 厦门亿联网络技术股份有限公司 | 一种基于Wayland协议的视频和UI的drm直接显示方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493958A (zh) * | 2002-08-06 | 2004-05-05 | ��ʿͨ��ʽ���� | 电气设备控制系统、图形用户界面处理软件结构和提供方法 |
CN1808381A (zh) * | 2006-02-15 | 2006-07-26 | 无锡永中科技有限公司 | 用户面板管理器和创建自定义动态子窗口的方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100556085C (zh) * | 2005-11-09 | 2009-10-28 | 上海奇码数字信息有限公司 | 屏幕显示混合系统及混合方法 |
US9484001B2 (en) * | 2013-12-23 | 2016-11-01 | Google Technology Holdings LLC | Portable electronic device controlling diffuse light source to emit light approximating color of object of user interest |
CN105354016A (zh) * | 2014-08-21 | 2016-02-24 | 西安慧泽知识产权运营管理有限公司 | 一种管理应用程序主题的系统和方法 |
CN105187234A (zh) * | 2015-08-10 | 2015-12-23 | 北京思特奇信息技术股份有限公司 | 一种网络拓扑统一管理方法及系统 |
CN106469045A (zh) * | 2015-08-14 | 2017-03-01 | 中兴通讯股份有限公司 | 图形用户界面gui的绘制方法及装置 |
-
2017
- 2017-05-25 CN CN201710377620.0A patent/CN107168715B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1493958A (zh) * | 2002-08-06 | 2004-05-05 | ��ʿͨ��ʽ���� | 电气设备控制系统、图形用户界面处理软件结构和提供方法 |
CN1808381A (zh) * | 2006-02-15 | 2006-07-26 | 无锡永中科技有限公司 | 用户面板管理器和创建自定义动态子窗口的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107168715A (zh) | 2017-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107168715B (zh) | 一种智能终端菜单主题gui引擎实现方法 | |
CN106484396B (zh) | 夜间模式切换方法、装置和终端设备 | |
CN108376094B (zh) | 通知消息显示方法、装置、计算机设备和存储介质 | |
CN113190776B (zh) | 弹窗展示方法与系统 | |
RU2530272C2 (ru) | Способ и устройство создания пользовательского интерфейса | |
CN106547571B (zh) | 一种可自定义的动图显示方法 | |
CN103336691B (zh) | 一种基于Android的动态布局方法及系统 | |
CN107908399A (zh) | 一种页面开发方法及装置 | |
CN112433726A (zh) | 一种Echarts图表组件的封装方法及设备 | |
CN109840115A (zh) | 一种Android系统中RecyclerView分页加载方法及装置 | |
CN105868289B (zh) | 一种多媒体课件生成方法及装置 | |
CN109445891B (zh) | 画面组态及展示方法、装置、计算机可读存储介质 | |
CN113411664B (zh) | 基于子应用的视频处理方法、装置和计算机设备 | |
CN112367549B (zh) | 电视浏览器的视频播放实现方法及浏览器应用运行方法 | |
CN110109423B (zh) | 一种基于Html5技术的水电厂实时数据监视系统 | |
WO2015018299A1 (zh) | 用户界面实现方法及装置 | |
CN105893009A (zh) | 基于Android平台的自定义控件的显示方法和装置 | |
CN107678740A (zh) | 一种ui业务组件的封装方法及计算机设备 | |
CN105204751A (zh) | 一种触屏设备背景图变换的方法及终端 | |
CN112445564A (zh) | 界面显示方法及电子设备、计算机可读存储介质 | |
US20140108972A1 (en) | Reconfigurable self-service kiosk | |
CN116185402A (zh) | 一种弹出视图的创建方法、装置、计算机设备和存储介质 | |
CN109614189A (zh) | 一种实现app图标动态加载动画的系统、方法以及装置 | |
CN111831192A (zh) | 一种绘制流程图的方法、系统及电子设备 | |
CN114281310A (zh) | 页面框架设置方法、装置、设备、存储介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210524 Address after: 1403a, building B, innovation building, 198 Daxin Road, majialong community, Nantou street, Nanshan District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen xiaoxiliu Technology Co.,Ltd. Address before: 518000 East, 7th floor, Yizhe building, Yuquan Road, Nanshan District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN SVI TECHNOLOGY Co.,Ltd. |