基于Symbian系统的用户界面的生成方法和系统的制作方法

文档序号:6441472阅读:174来源:国知局
专利名称:基于Symbian系统的用户界面的生成方法和系统的制作方法
技术领域
本发明涉及移动通信领域,特别涉及基于Symbian系统的用户界面的生成方法和系统。
背景技术
移动互联网的发展越来越迅猛,目前市场上呈现出iPhone, android, Symbian,windows phone等多个手机系统争鸣的局面。由于基于Symbian系统的手机市场占有率还很大,未来几年内Symbian系统仍将在手机开发中扮演重要角色。用户界面(UI)开发一直是移动终端中应用开发的一个重点。与其它手机系统便捷的Π开发不同,Symbian系统的UI开发较为困难。其主要原因在于,第一,Symbian系统控件表现效果较差,iPhone、android等系统提供的系统控件就能带来很好效果表现,而Symbian上要获得同样效果表现,贝1J需要大量的开发工作,导致Symbian系统中开发速度相对缓慢;第二, Symbian系统UI框架提供的界面之间切换,界面内元素之间的焦点控制功能非常复杂,对于一个复杂的界面,如果仅采用Symbian系统框架提供的方法,需要非常复杂的逻辑代码来实现焦点切换;第三,Symbian C++没有采用标准C++库,在内存管理方面显得非常复杂,严重影响开发速度,而且容易造成内存泄露。发明内容
本发明提供的基于Symbian系统的用户界面生成的方法和系统,以解决现有技术中Symbian系统中用户界面开发速度相对缓慢,用户界面表现效果差的问题。
本发明公开了一种基于Symbian系统的用户界面的生成方法,所述方法包括:
步骤I,基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构,操作中使用的变量的类型包括自定义数据结构;
步骤2,创建Symbian系统的实现框架中类的子类,在所述子类中初始化全局数据,所述子类构成自定义系统实现框架;
步骤3,基于Symbian系统的控件创建具有预设绘制操作的自定义控件,并创建包括多个自定义控件的复合控件;
步骤4,通过继承复合控件的方式生成自定义界面模板;
步骤5,在生成用户界面时,继承自定义界面模板生成用户界面模板,继承自定义系统实现框架生成用户系统实现框架,使用所述用户系统实现框架初始化所述用户界面模板,并在初始化时添加自定义控件。
其中,所述自定义系统实现框架还包括界面栈;
所述方法还包括在生成用户界面后,将生成的用户界面加入用户系统实现框架的界面栈,在显示用户界面时,用户界面从所述界面栈中出栈,并显示所述用户界面。
其中,所述创建包括多个自定义控件的复合控件进一步包括
步骤31,在复合控件中保存当前拥有焦点的自定义控件的索引值,当焦点切换时,保存的索引值对应改变。
其中,所述方法还包括
图片管理器使用哈希表管理图片,以图片路径作为key,以图片的指针为value ;
当调用图片时,以调用的图片路径为key,查找哈希表获得key对应的value,依据所述value获得图片。
其中,所述基于Symbian系统的控件创建具有预设绘制操作的自定义控件进一步包括
步骤51,继承Symbian系统的控件类生成自定义类;
步骤52,自定义类中的绘制方法调用自定义虚函数,所述自定义虚函数中参数为Symbian系统的画布类的对象;
步骤53,继承自定义类生成自定义控件,在所述自定义控件中通过所述参数调用画布类的函数实现所述自定义控件的预设绘制操作;
所述创建包括多个自定义控件的复合控件进一步包括:
步骤54,创建容器类,在容器类中定义一个类型为自定义类的容器,将所述多个自定义控件加入容器中。
其中,所述基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构进一步包括:
自定义数据结构中包含数据成员,所述数据成员的类型为Symbian系统的数据类型或数据结构,按预设要求对所述数据成员进行操作,自定义数据结构具有标准C++接口。
其中,所述步骤4还包括在所述自定义界面模板中添加用于管理菜单的菜单控件。
其中,所述图片管理器使用哈希表管理图片,以图片路径作为key,以图片的指针为value进一步包括
当以调用的图片路径为key查找哈希表没有检索到所述key时,解码图片路径下的图片,以图片路径作为key,将key对应value存储为解码的图片的指针。
本发明还公开了一种基于Symbian系统的用户界面的生成系统,其特征在于,所述系统包括:
通用模块,用于基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构,操作中使用的变量的类型包括自定义数据结构;
自定义框架模块,用于创建Symbian系统的系统实现框架中类的子类,在所述子类中初始化全局数据,所述子类构成自定义系统实现框架;基于Symbian系统的控件创建具有预设绘制操作的自定义控件,并创建包括多个自定义控件的复合控件;继承复合控件生成自定义界面模板;
界面生成模块,用于在生成用户界面时,继承自定义界面模板生成用户界面模板,继承自定义系统实现框架生成用户系统实现框架,使用所述系统实现框架初始化所述用户界面模板,并在初始化时添加自定义控件。
其中,所述系统还包括图片管理器,
图片管理器使用哈希表管理图片,以图片路径作为key,以图片的指针为value,当调用图片时,以调用的图片路径为key,查找哈希表获得key对应的value,依据所述value获得图片。
本发明实施例的有益效果是:通过采用自定义数据结构、自定义系统实现框架、自定义控件、以及自定义界面模板,减少开发任务量,加快开发速度;通过使用界面栈,方便界面间切换;通过使用复合控件存储拥有焦点的自定义控件索引值的方法,进行焦点控制;通过使用自定义控件,加强控件表现效果;通过自定义数据结构,使得数据结构具有标准C++接口,方便开发和管理;通过使用哈希表进行图片管理,方便图片调用。


图1为本发明基于Symbian系统的用户界面的生成方法的流程图2为本发明基于Symbian系统的用户界面生成方法实施例中所用的自定义框架结构图3为本发明基于Symbian系统的用户界面生成方法实施例中应用自定义框架生成用户界面的示意图4为本发明基于Symbian系统的用户界面生成系统的结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
参见图1,为本发明提供的基于Symbian系统的用户界面的生成方法流程图。
所述方法包括如下步骤。
步骤S100,基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构,操作中使用的变量的类型包括自定义数据结构。
在一较佳的实施方式中,自定义数据结构中包含数据成员,所述数据成员的类型为Symbian系统的数据类型或数据结构,按预设要求对所述数据成员进行操作,自定义数据结构具有标准C++接口。
举例而言,如图2所示,自定义的数据结构包括字符串类型string、宽字符串类型wstring、链表list、哈希表类型hash map、容器类型vector。根据Symbian系统数据结构(描述符)和数据类型实现,在提供标准C++接口的同时,兼容Symbian C++的特性,进而实现便捷开发和高效的内存管理。
比如,对于string,该自定义数据结构中包含一个类型为Symbian系统数据类型RBufS的数据成员,对该数据成员进行对应的添加预设功能和得到标准C++接口的操作。添加的预设功能如引用计数技术。自定义数据结构的实现基于Symbian系统数据结构和数据类型完成,为一种轻量级的封装,便于使用。
同理,wstring则是包含了一个类型为Symbian系统数据类型RBuf 16的数据成员,Vector则是包含了一个类型为Symbian系统数据类型RPointerArray或者RArray的数据成员,且是基于预设功能和标准C++接口进行操作。对于链表list和哈希表类型hash map的内部基于Vector实现。
步骤S200,创建Symbian系统的实现框架中类的子类,在子类中初始化全局数据,子类构成自定义系统实现框架。
举例而言,如图2所示,自定义系统实现框架封装了 Symbian系统的实现框架,以便于上层应用程序调用。比如对于Symbian系统核心的类CAknViewAppUi,如果不经过封装,应用程序调用的时候,需要实现一个类继承自CAknViewAppUi,如class CMyViewAppU1:pub I i cCAknV i ewAppU i 本发明在自定义系统实现框架中编写一个CAknViewAppUi的子类,如class CMyAppUiBase:public CAknViewAppUi,如此处理,上层应用程序只需要继承自子类 CMyAppUiBase,如 class CMyViewAppU1:public CMyAppUiBase 在该子类中完成对应全局数据的初始化,以及打开日志等预设的任务。由于应用程序继承子类完成任务,能够简化应用程序的接口,应用程序的一些任务在其继承的父类中实现。
在一较佳的实施方式中,所述自定义系统实现框架还包括界面栈;所述方法还包括在生成用户界面后,将生成的用户界面加入用户系统实现框架的界面栈,在显示用户界面时,用户界面从所述界面栈出栈,并显示所述用户界面。
该实施方式中将需要显示的界面都需要添加到该界面栈中,在显示时界面出栈进行显示,方便了界面之间的切换。
步骤S300,基于Symbian系统的控件创建具有预设绘制操作的自定义控件,并创建包括多个自定义控件的复合控件。
在一较佳的实施方式中,所述基于Symbian系统的控件创建具有预设绘制操作的自定义控件进一步包括
步骤S310,继承Symbian系统的控件类生成自定义类。
步骤S320,自定义类中的绘制方法调用自定义虚函数,所述自定义虚函数中参数为Symbian系统的画布类的对象。
步骤S330,继承自定义类生成自定义控件,在所述自定义控件中通过所述参数调用画布类的函数实现所述自定义控件的预设绘制操作。
举例而言,如图2所示,继承自Symbian系统的控件类CCoeControl,实现了包括label (标签)、button (按钮)等基本控件,并定义基本的container (容器)用于管理子控件,方便扩展。
实现自定义控件的一个自定义类是CMyControlBase,其是直接继承自Symbian系统的 CCoeControl,在 CMyControlB ase 中重写 CCoeControl 的 Draw 方法(绘制方法),使其调用自定义的虚函数 OnPaint (CCanvas &canvas)。label、Button、container 等自定义子控件继承自CMyControlBase。在自定义控件中重新实现OnPaint函数,在OnPaint函数中做相应的绘制。OnPaint函数的参数是一个画布类CCanvas对象,CCanvas类里面封装了大量与绘制相关的操作,通过使用OnPaint函数完成该封装,能够大量简化程序的代码。
比如,在现有技术中使用一种颜色填充一个矩形区域,因为没有进行封装,需要在Draw函数中写下以下代码:
权利要求
1.一种基于Symbian系统的用户界面的生成方法,其特征在于,所述方法包括: 步骤I,基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构,操作中使用的变量的类型包括自定义数据结构; 步骤2,创建Symbian系统的实现框架中类的子类,在所述子类中初始化全局数据,所述子类构成自定义系统实现框架; 步骤3,基于Symbian系统的控件创建具有预设绘制操作的自定义控件,并创建包括多个自定义控件的复合控件; 步骤4,通过继承复合控件的方式生成自定义界面模板; 步骤5,在生成用户界面时,继承自定义界面模板生成用户界面模板,继承自定义系统实现框架生成用户系统实现框架,使用所述用户系统实现框架初始化所述用户界面模板,并在初始化时添加自定义控件。
2.根据权利要求1所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述自定义系统实现框架还包括界面栈; 所述方法还包括在生成用户界面后,将生成的用户界面加入用户系统实现框架的界面栈,在显示用户界面时,用户界面从所述界面栈中出栈,并显示所述用户界面。
3.根据权利要求1所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述创建包括多个自定义控件的复合控件进一步包括 步骤31,在复合控件中保存当前拥有焦点的自定义控件的索引值,当焦点切换时,保存的索引值对应改变。
4.根据权利要求1所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述方法还包括 图片管理器使用哈希表管理图片,以图片路径作为key,以图片的指针为value ;当调用图片时,以调用的图片路径为key,查找哈希表获得key对应的value,依据所述value获得图片。
5.根据权利要求1所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述基于Symbian系统的控件创建具有预设绘制操作的自定义控件进一步包括 步骤51,继承Symbian系统的控件类生成自定义类; 步骤52,自定义 类中的绘制方法调用自定义虚函数,所述自定义虚函数中参数为Symbian系统的画布类的对象; 步骤53,继承自定义类生成自定义控件,在所述自定义控件中通过所述参数调用画布类的函数实现所述自定义控件的预设绘制操作; 所述创建包括多个自定义控件的复合控件进一步包括: 步骤54,创建容器类,在容器类中定义一个类型为自定义类的容器,将所述多个自定义控件加入容器中。
6.根据权利要求1所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构进一步包括: 自定义数据结构中包含数据成员,所述数据成员的类型为Symbian系统的数据类型或数据结构,按预设要求对所述数据成员进行操作,自定义数据结构具有标准C++接口。
7.根据权利要求1所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述步骤4还包括在所述自定义界面模板中添加用于管理菜单的菜单控件。
8.根据权利要求4所述的基于Symbian系统的用户界面的生成方法,其特征在于, 所述图片管理器使用哈希表管理图片,以图片路径作为key,以图片的指针为value进一步包括 当以调用的图片路径为key查找哈希表没有检索到所述key时,解码图片路径下的图片,以图片路径作为key,将key对应value存储为解码的图片的指针。
9.一种基于Symbian系统的用户界面的生成系统,其特征在于,所述系统包括: 通用模块,用于基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构,操作中使用的变量的类型包括自定义数据结构; 自定义框架模块,用于创建Symbian系统的系统实现框架中类的子类,在所述子类中初始化全局数据,所述子类构成自定义系统实现框架;基于Symbian系统的控件创建具有预设绘制操作的自定义控件,并创建包括多个自定义控件的复合控件;继承复合控件生成自定义界面模板; 界面生成模块,用于在生成用户界面时,继承自定义界面模板生成用户界面模板,继承自定义系统实现框架生成用户系统实现框架,使用所述系统实现框架初始化所述用户界面模板,并在初始化时添加自定义控件。
10.根据权利要求9所述的基于Symbian系统的用户界面的生成系统,其特征在于, 所述系统还包括图片管 理器, 图片管理器使用哈希表管理图片,以图片路径作为key,以图片的指针为value,当调用图片时,以调用的图片路径为key,查找哈希表获得key对应的value,依据所述value获得图片。
全文摘要
本发明公开基于Symbian系统的用户界面的生成方法和系统,方法包括基于Symbian系统的数据结构和数据类型定义具有标准C++接口的自定义数据结构;创建该系统的实现框架中类的子类,子类构成自定义系统实现框架;基于该系统的控件创建自定义控件,并创建包括多个自定义控件的复合控件;继承复合控件生成自定义界面模板;在生成用户界面时,继承自定义界面模板生成用户界面模板,继承自定义系统实现框架生成用户系统实现框架,用户系统实现框架初始化用户界面模板,并在初始化时添加自定义控件。本发明能够提高基于Symbian系统的用户界面开发速度,并提高用户界面表现效果。
文档编号G06F9/44GK103164204SQ20111042186
公开日2013年6月19日 申请日期2011年12月15日 优先权日2011年12月15日
发明者甘寿聪 申请人:北京新媒传信科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1