一种基于symbian系统的手机桌面布局的实现方法
技术领域
本发明涉及一种基于symbian系统的手机桌面布局的实现方法。
背景技术
目前symbian系统自带的手机桌面,功能比较单一,用户不能根据自己的爱好和需要添加自己喜欢的模块和布局。现有的第三方手机桌面都是在切换到手机桌面的时候用自己程序的一个视图盖住手机桌面,若手机桌面的任一地方的刷新都要引起手机整个桌面的重新绘制,资源比较浪费,对低端的symbian系统手机更是不适合,而且如果手机桌面同时有多个地方进行刷新,就会造成冲突。
发明内容
本发明的目的在于针对symbian系统自带的桌面功能单一,用户不能随意改变布局和第三方手机桌面刷新时资源的浪费和冲突的问题,提供了一种多窗口的手机桌面布局的实现方法。
一种基于symbian系统的手机桌面布局的实现方法,包括以下几个步骤:
步骤1、点击程序图标,启动手机桌面客户端,进入后台主界面;
步骤2、手机桌面客户端启动监听函数HandleWsEventL判断系统是否进入手机系统桌面,如果已经进入手机系统桌面,则转入步骤3,否则转入步骤2继续进行监听;
步骤3、用户选择窗口布局类型后,初始化所需要的RWindow窗口类型,对当前手机桌面的分辨率以及每个独立RWindow窗口的坐标进行获取;
步骤4、根据步骤3的计算结果和所选择的窗口布局类型,把当前手机桌面初始化为多个独立的RWindow窗口,且可以进一步将每个独立的RWindow窗口拆分成若干小区域进行绘制;向加载服务器获取预先制作的各种风格的窗口背景图片,将原始整张背景图按照窗口布局类型进行切割,然后加载到对应的每个独立的RWindow窗口,所述的每个独立的RWindow窗口在各自对应的区域内监听事件,互不干扰且分别对事件进行拦截处理,并各自通知所属的RWindow窗口进行刷新;
步骤5、创建WindowServer通信的窗口服务消息句柄RWsSession类,用于协调每个RWindow窗口发送到应用程序的异步事件,这样使得后台与多个独立前台RWindow窗口连接起来,构成通信机制;
步骤6、使用回调函数EEventFocusGroupChanged对当前显示给用户的窗口变化状态做出回调响应,然后将窗口的变化信息传递给监听函数HandleWsEventL用于对事件进行处理,如果是回到手机系统桌面那么马上将手机桌面切换至步骤3和4所建立的多RWindow窗口界面,如果是其他界面则交给系统处理;
步骤7、使用监听函数HandleKeyEvent用来对系统按键进行监听,如果检测到用户在手机桌面上使用左右键和导航键及OK键时,程序自动屏蔽系统的响应,并且把系统拦截到的事件交给多RWindow窗口界面处理,让程序自行处理用户窗口事件,使得按键处理和系统原始按键相互区别,其他数字键盘上的操作继续交给系统处理;
步骤8、当用户返回手机系统桌面,监听函数HandleKeyEvent就对用户操作进行判断,设立一个全局变量参数index,对每个RWindow窗口进行标记,该全局变量参数index值会根据手机按键的上下键移动发生变化,当用户移动到当前选中的RWindow窗口的时候,该全局变量参数index的值随之改变;当划分的某个RWindow窗口里的内容需要刷新的时候,因为会有多个事件传递,所以手机客户端需要根据当前全局变量参数index的值来判断哪个RWindow窗口需要操作,使传递过来的事件与RWindow窗口对应,这样就可以对当前RWindow窗口进行数据交互处理;
步骤9、所有RWindow窗口都可以通过步骤5的消息句柄RWsSession进行消息通信,这样使得每一个RWindow窗口在已划分的手机桌面区域内中独立运行,互不影响。
采用了本发明的技术方案后,基于symbian系统的手机用户可以根据自己的实际需要选择具体的多窗口布局,而且每个窗口的刷新都不会引起其他窗口的刷新,不仅界面功能上更加实用而且刷新时资源浪费也将大大减少。
附图说明
图1为本发明的流程示意图。
以下结合附图和具体实施例对本发明作进一步详述。
具体实施方式
如图1所示,本发明一种基于symbian系统的手机桌面布局的实现方法,包括以下几个步骤:
步骤1、点击程序图标,启动手机桌面客户端,进入后台主界面;
步骤2、手机桌面客户端启动监听函数HandleWsEventL判断系统是否进入手机系统桌面,如果已经进入手机系统桌面,则转入步骤3,否则转入步骤2继续进行监听;
步骤3、用户选择窗口布局类型后,初始化所需要的RWindow窗口类型,对当前手机桌面的分辨率以及每个独立RWindow窗口的坐标进行获取;
步骤4、根据步骤3的计算结果和所选择的窗口布局类型,把当前手机桌面初始化(new)为多个独立的RWindow窗口,且可以进一步将每个独立的RWindow窗口拆分成若干小区域进行绘制,向加载服务器获取预先制作的各种风格的窗口背景图片,将原始整张背景图按照窗口布局类型进行切割,然后加载到对应的每个独立的RWindow窗口,所述的每个独立的RWindow窗口在各自对应的区域内监听事件,互不干扰且分别对事件进行拦截处理,并各自通知所属的RWindow窗口进行刷新;
例如,手机桌面包括若干窗口,其中一个窗口用来显示天气情况、一个窗口用来显示新闻,还有一个窗口用来显示程序快捷方式,如短信、电话等,其中显示天气的窗口的刷新不会引起新闻窗口的刷新。
步骤5、使用程序对每个RWindow窗口进行二次布局划分,使用CFbsBitmapDevice方法创建图形遮罩层,为RWindow窗口背景添加透明效果,使得每个RWindow窗口内的图片能够清晰显示不失真,同时为每个RWindow窗口添加不同风格的字体以及为每个RWindow窗口填充色泽,整体风格能够醒目;
步骤6、创建WindowServer通信的窗口服务句柄RWsSession类,用于协调每个RWindow窗口发送到应用程序的异步事件,比如重绘事件和用户输入事件等,这样使得后台与该多个独立前台RWindow窗口连接起来,构成通信机制;
步骤7、使用回调函数EEventFocusGroupChanged对当前显示给用户的窗口变化状态做出回调响应,然后将窗口的变化信息传递给监听函数HandleWsEventL用于对事件进行处理,如果是回到手机系统桌面那么马上将手机桌面切换至步骤3和4所建立的多RWindow窗口界面,如果是其他界面则交给系统处理;
步骤8、使用监听函数HandleKeyEvent用来对系统按键进行监听,如果检测到用户在手机桌面上使用左右键和导航键及OK键时,程序自动屏蔽系统的响应,并且把系统拦截到的事件交给多RWindow窗口界面处理,让程序自行处理用户窗口事件,使得按键处理和系统原始按键相互区别,其他数字键盘上的操作继续交给系统处理;
步骤9、当用户返回手机系统桌面,监听函数HandleKeyEvent就对用户操作进行判断,设立一个全局变量参数index,对每个RWindow窗口进行标记,该全局变量参数index值会根据手机按键的上下键移动发生变化,即加1或者减1,当用户移动到当前选中的RWindow窗口的时候,该全局变量参数index的值随之改变;当划分的某个RWindow窗口里的内容需要刷新的时候,因为会有多个事件传递,所以手机客户端需要根据当前全局变量参数index的值来判断哪个RWindow窗口需要操作,使传递过来的事件与RWindow窗口对应,这样就可以对当前RWindow窗口进行数据交互处理;
步骤10、所有RWindow窗口都可以通过步骤6的消息句柄RWsSession进行消息通信,这样使得每一个RWindow窗口在已划分的手机桌面区域内中独立运行,互不影响,任何一个RWindow窗口的刷新都不会像系统原始单窗口那样所有资源都需要重新绘制,不仅提高了效率和节省了内存。
以上所述,仅是本发明较佳实施例而已,并非对本发明的技术范围作任何限制,故凡是依据本发明的技术实质对以上实施例所作的任何细微修改、等同变化与修饰,均仍属于本发明技术方案的范围内。