一种界面控件树的创建和绘制的方法、系统及移动终端的制作方法

文档序号:6335034阅读:449来源:国知局
专利名称:一种界面控件树的创建和绘制的方法、系统及移动终端的制作方法
技术领域
本发明涉及数据结构领域,尤其涉及一种界面控件树的创建和绘制的方法、系统 及移动终端。
背景技术
现有的移动终端中主流手机开发平台,如symbiaruwindows mobile、J2ME等系统, 都提供了供开发使用的UI (User Interface)控件,为了让开发人员可以扩展自有特色的 UI控件,各开发平台都提供了绘图工具类,如symbian系统的CGraphicsContext,J2ME系 统Graphics等,这些UI控件是实现人机交互的重要组成部分,但现有系统提供的UI控件, 都不支持动画效果(如控件的平移,缩放、翻转等等),特别是在J2ME系统中,UI控件不易 相互包含以组成复杂的控件系统,且不支持界面控件动画效果。

发明内容
本发明实施例的目的在于提出一种界面控件树的创建方法,旨在解决移动终端开 发平台上的界面控件系统不易相互包含以组成复杂的控件系统,且不支持界面控件动画效 果的问题。本发明实施例是这样实现的,一种界面控件树的创建方法,所述方法包括创建界面控件基类UIBase及其操作函数、动画控制函数和标签状态;创建界面控件基类UIBase的当前帧动画内容准备函数和绘制动画内容函数;创建派生于界面控件基类UIBase的具体控件类,包括动画绘制节点UlView、界 面容器控件UIBox和界面控件节点;创建动画绘制节点UIView的定时器回调函数AnimationTimerCallBack ;组合各控件节点父子兄弟关系创建生成界面控件树和类的对象。本发明实施例的另一目的在于提出一种界面控件树绘制方法,所述方法包括运行界面控件节点的动画开启函数StartAnimation ;判断界面控件节点是否存在父节点,如果是,则进入步骤“运行界面控件节点的动 画开启函数StartAnimatioW即调用父节点的动画开启函数),如果否(即当前的界面控 件节点是动画绘制节点UIView),则动画绘制节点UIView开启动画定时器;动画定时器每到一个时间周期,动画定时器回调动画绘制节点UIView的定时器 AnimationTimerCallBack ;定时器回调函数调用动画绘制节点UIView的当前帧动画内容准备函数 PrepareAFrameOfAnimation ;定时器回调函数调用动画绘制节点UIView的绘制准备函数DrawNow绘制整颗界 面控件树的动画效果。本发明实施例的另一目的在于提出一种界面控件树创建系统,所述系统包括基 类创建模块、控件类创建模块、控件树创建模块;
基类创建模块,与控件类创建模块相连,用于创建界面控件基类UIBase及其操作 函数、动画控制函数、标签状态、当前帧动画内容准备函数和绘制动画内容函数;控件类创建模块,与基类创建模块和控件树创建模块相连,用于创建派生 于界面控件基类UIBase的具体控件类,如图2,包括动画绘制节点UlView、界面 容器控件UIBox和界面控件节点,并创建动画绘制节点UIView的定时器回调函数 AnimationTimerCallBack ;控件树创建模块,与控件类创建模块相连,用于组合各控件节点父子兄弟关系创 建生成界面控件树和类的对象。本发明实施例的另一目的在于提出一种界面控件树绘制系统,所述系统包括动 画开启模块、第一判断模块、定时模块、回调模块、第二判断模块、绘制模块;动画开启模块,与第一判断模块相连,用于运行界面控件节点的动画开启函数 StartAnimation并向第一判断模块发送判断父节点指令,接收第一判断模块的开启指令并 运行父节点的动画开启函数StartAnimation ;第一判断模块,与动画开启模块和定时模块相连,用于接收动画开启模块发送的 判断父节点指令并判断界面控件节点是否存在父节点,如果是则向动画开启模块发送开启 指令,如果否(即当前界面控件节点是根节点),则向定时模块发送定时指令;定时模块,与第一判断模块、第二判断模块和回调模块相连,用于接收第一判断模 块发送的定时指令并开启一个时间周期为50-125毫秒或80毫秒的动画定时器,动画定时 器每到一个时间周期向回调模块发送一次回调指令,接收第二判断模块发送的停止定时指 令并停止定时器的运行,接收第二判断模块发送的继续定时指令并控制定时器每到一个时 间周期向回调模块发送一次回调指令;回调模块,与定时模块、第二判断模块和绘制模块相连,用于接收定时模块发送的 回调指令并调用定时器回调函数AnimationTimerCallBack,定时器回调函数调用根节点的 当前帧动画内容准备函数Pr印areAFrameOf Animat ion,所述当前帧动画内容准备函数包括 绘制普通动画内容准备函数GenAFrame和绘制内部动画内容准备函数GenInnerAFrame,并 依次调用当前界面控件节点所有子节点的绘制帧动画内容准备函数,当所有节点的绘制帧 动画内容准备就绪后,向绘制模块发送绘制指令,同时向第二判断模块发送判断动画结束 指令;第二判断模块,与回调模块和定时模块相连,用于接收回调模块发送的判断动画 结束指令并判断界面控件节点的标签状态是否都为“动画结束”,如果是,则向定时模块发 送停止定时指令,则整个动画过程已完成;如果否,则向定时模块发送继续定时指令;绘制模块,与回调模块相连,用于接收回调模块发送的绘制指令并调用根节点的 绘制准备函数DrawNow绘制整颗界面控件树的动画效果。本发明实施例的另一目的在于提出一种包括所述界面控件树创建系统的终端设 备的移动终端。本发明实施例的另一目的在于提出一种包括所述界面控件树绘制系统的终端设 备的移动终端。本发明的有益效果通过创建界面控件基类UIBase及其操作函数、动画控制函数和标签状态、当前帧动画内容准备函数、绘制动画内容函数,创建派生于界面控件基类UIBase的具体控件类生 成动画绘制节点UlView、界面容器控件UIBox和界面控件节点,创建动画绘制节点UlView 的定时器回调函数,组合各控件节点父子兄弟关系创建生成界面控件树和类的对象,通过 相互包含构成复合控件,定义不同的类、对象、和函数类型实现增加、修改或移植控件树结 构,只有根节点动画绘制节点UlView的绘制准备函数DrawNow和系统交互,完成绘制界面 控件树的动画效果的目的,通过事先设置的回调接口函数可依次连续执行多个类型的动画 效果,动画绘制节点的动画开启函数被调用时开启一个动画定时器,根据移动终端的性能 确定动画定时器的时间周期,使得画面均勻呈现,克服了界面控件不易相互包含以组成复 杂的控件系统的技术问题,在一个屏幕页面中组织复杂的控件布局,高效地实现整个系统 的动画效果。


图1是本发明实施例一种界面控件树创建方法的流程图;图2是本发明实施例控件类结构图;图3是本发明实施例三级界面控件树结构图;图4是本发明实施例一种界面控件树绘制方法流程图;图5是本发明实施例一种界面控件树创建系统结构示意图;图6是本发明实施例一种界面控件树绘制系统结构示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和实施例,对 本发明进行进一步详细说明,为了便于说明,仅示出了与本发明实施例相关的部分。应当理 解,此处所描写的具体实施例,仅仅用于解释本发明,并不用以限制本发明。本发明通过创建界面控件基类UIBase及其操作函数、动画控制函数和标签状态、 当前帧动画内容准备函数、绘制动画内容函数,创建派生于界面控件基类UIBase的具体控 件类生成动画绘制节点UlView、界面容器控件UIBox和界面控件节点,创建动画绘制节点 UlView的定时器回调函数,组合各控件节点父子兄弟关系创建生成界面控件树和类的对 象,通过相互包含构成复合控件,定义不同的类、对象、和函数类型实现增加、修改或移植控 件树结构,只有根节点动画绘制节点UlView的绘制准备函数DrawNow和系统交互,完成绘 制界面控件树的动画效果。实施例一图1是本发明实施例一种界面控件树的创建方法的流程图。所述方法包括步骤S101,创建界面控件基类UIBase及其操作函数、动画控制函数和标签状态;所述操作函数包括加入、获取、查找子节点、兄弟节点、父节点的函数;所述动画控制函数包括普通动画控制函数和内部动画控制函数,普通动画控制函 数和内部动画控制函数可同时运行;所述普通动画控制函数指整个控件节点相对其兄弟节点的运动,包括平移、缩放、 旋转;所述内部动画控制函数指控件内的变化,包括走马灯字符的移动;
普通动画控制函数和内部动画控制函数,分别包括动画开启函数、暂停动画函数、 继续动画函数、结束动画函数;所述的动画开启函数StartAnimation,用于获取控件节点的动画效果类型、动画 时长、动画结束后是否删除节点,控件节点的初始位置和大小,控件节点动画结束时节点的 位置和大小,控件节点结束时是否回调通知控件节点的动画观察者;所述的动画效果类型是按照产品需求事先定义的效果;所述的动画观察者指关注该控件节点动画过程的对象(包括程序中的其他对象、 其他的控件节点),事先将观察者对象的动画回调接口设定给控件节点,当控件节点的动画 状态发生改变时,通过事先设置的回调接口函数通知调用该控件节点者,通过回调接口,可 以依次连续执行多个类型的动画;所述的标签状态记录节点动画的状态,包括动画播放、动画暂停和动画结束;动画开启函数设置标签状态为“动画播放”,播放帧数全部完成后,标签状态就被 设置“动画结束”;暂停动画函数,将标签状态置为“动画暂停”;继续动画函数,将标签状态置为“动画播放”;结束动画函数,将标签状态置为“动画结束”;S102,创建界面控件基类UIBase的当前帧动画内容准备函数和绘制动画内容函 数;所述当前帧动画内容准备函数包括准备控件节点的位置、大小、形状、颜色、透明 度,含普通动画内容准备函数、内部动画内容准备函数;所述绘制动画内容函数指绘制控件节点的动画效果的函数;所述的当前帧动画内容准备函数?1~印3仪六 仪1116(^六11丨11^^011、普通动画内容准备 函数GenAFrame、内部动画内容准备函数GenAFrame为虚函数,可以修改和增加新的动画效 果类型;所述的绘制动画内容函数Draw为纯虚函数;S103,创建派生于界面控件基类UIBase的具体控件类,如图2所示控件类结构图, 包括动画绘制节点UlView、界面容器控件UIBox和界面控件节点;所述的界面容器控件UIBox是包含界面控件节点的一个容器类;所述界面控件节点包括界面图片Ullmage、界面标签UILable、界面网格UIGrid、 界面走马灯UIMarquee ;S104,创建动画绘制节点UIView的定时器回调函数AnimationTimerCallBack ;所述动画绘制节点UIView在动画开启函数StartAnimation被调用时开启一个时 间周期为50-125毫秒或80毫秒的动画定时器,动画定时器每隔一个时间周期回调一次动 画绘制节点UIView的定时器回调函数;所述定时器回调函数包括步骤S1041,定时器回调函数调用动画绘制节点UIView的当前帧动画内容准备函数 PrepareAFrameOfAnimation JfIgfU 白勺云力Ii ;S1042,当前帧动画内容准备函数调用绘制普通动画内容准备函数GenAFrame和 绘制内部动画内容准备函数GenlrmerAFrame,并依次调用当前界面控件节点所有子节点的当前帧动画内容准备函数;所述的依次调用过程是以深度遍历的方式调用了所有控件节点的绘制帧动画内 容准备函数PrepareAFrameOfAnimation,使得所有控件节点准备好需要绘制的动画内容;S1043,判断界面控件节点的标签状态是否都为“动画结束”,如果是,则进入步骤 S1044,如果否,则进入步骤S1045 ;S1044,停止动画定时器,整个动画过程已完成;S1045,定时器回调函数调用绘制准备函数DrawNow绘制整颗界面控件树的动画 效果;所述的绘制准备函数DrawNow将调用动画绘制节点UlView的绘制动画内容函数 Draw,动画绘制节点UlView的绘制动画内容函数Draw采用深度遍历的方式调用所有界面 控件节点的绘制动画内容函数Draw,将整颗界面控件树的动画效果绘制屏幕上;所述的绘制准备函数DrawNow还可以通知操作系统(比如symbian系统控件的 DrawNow函数,J2ME平台的canvas类的r印aint函数),由操作系统回调至动画绘制节点 UlView的绘制动画内容函数Draw,在动画绘制节点UlView的绘制动画内容函数Draw中采 用深度遍历的方式将整颗界面控件树的动画效果绘制屏幕上;S1046,动画定时器每到一个时间周期,动画定时器再次回调动画绘制节点UlView 的定时器回调函数以进入步骤S1041 ;S105,组合各控件节点父子兄弟关系创建生成界面控件树和类的对象;界面控件树可以通过任意组合各控件节点的父子兄弟关系生成不同的界面控件 树,以一个3级界面控件树为例,如图3,子根节点是动画绘制节点UlView对象,第二级节点 是界面容器控件节点UIBox对象,第三级节点就是界面控件节点对象。本发明实施例中通过创建界面控件基类UIBase及其操作函数、动画控制函数和 标签状态、当前帧动画内容准备函数、绘制动画内容函数,创建派生于界面控件基类UIBase 的具体控件类生成动画绘制节点UlView、界面容器控件UIBox和界面控件节点,创建动画 绘制节点UlView的定时器回调函数,组合各控件节点父子兄弟关系创建生成界面控件树 和类的对象,通过相互包含构成复合控件,定义不同的类、对象、和函数类型实现增加、修改 或移植控件树结构,只有根节点动画绘制节点UlView的绘制准备函数DrawNow和系统交 互,完成绘制界面控件树的动画效果的目的,通过事先设置的回调接口函数可依次连续执 行多个类型的动画效果,动画绘制节点的动画开启函数被调用时开启一个动画定时器,根 据移动终端的性能确定动画定时器的时间周期,使得画面均勻呈现,克服了界面控件不易 相互包含以组成复杂的控件系统的技术问题。实施例二图4是本发明实施例一种界面控件树绘制方法流程图。所述方法包括以下步骤S401,运行界面控件节点的动画开启函数StartAnimation ;所述的界面控件节点包括界面图片Ullmage、界面标签UILable、界面网格 UIGrid、界面走马灯 UIMarquee ;所述的动画开启函数StartAnimation用于获取控件节点的动画效果类型(如平 移、缩放、旋转等)、动画时长、动画结束后是否删除控件节点、控件节点的初始位置和大小, 控件节点动画结束时节点的位置和大小,控件节点结束时是否回调通知控件节点的动画观察者;所述的动画效果类型是按照产品需求事先定义的效果;所述的动画观察者指关注该控件节点动画过程的对象(包括程序中的其他对象、 其他的控件节点),事先将观察者对象的动画回调接口设定给控件节点,当控件节点的动画 状态发生改变时,通过事先设置的回调接口函数通知调用该控件节点者,通过回调接口,可 以依次连续执行多个类型的动画;S402,判断界面控件节点是否存在父节点,如果是则进入步骤S401,如果否(即当 前的界面控件节点是动画绘制节点UIView),则进入步骤S403 ;S403,动画绘制节点UIView开启动画定时器;所述的动画定时器是一个时间周期为50-125毫秒或80毫秒的动画定时器,动画 定时器每隔50-125毫秒或80毫秒回调一次动画绘制节点UIView的定时器回调函数;S404,动画定时器每到一个时间周期,动画定时器回调动画绘制节点UIView的定 时器回调函数 AnimationTimerCallBack ;S405,定时器回调函数调用动画绘制节点UIView的当前帧动画内容准备函数 PrepareAFrameOfAnimation,当前帧动画内容准备函数具体包括步骤S4051,定时器回调函数调用动画绘制节点UIView的当前帧动画内容准备函数 PrepareAFrameOfAnimation JfIgfU 白勺云力Ii ;S4052当前帧动画内容准备函数调用绘制普通动画内容准备函数GenAFrame和 绘制内部动画内容准备函数GenlrmerAFrame,并依次调用当前控件节点所有子节点的当前 帧动画内容准备函数;所述的依次调用过程是以深度遍历的方式调用了所有控件节点的绘制帧动画内 容准备函数PrepareAFrameOfAnimation,使得所有控件节点的绘制动画内容准备就绪;S4053,判断界面控件节点的标签状态是否都为“动画结束”,如果是,则进入步骤 S4054,如果否,则进入步骤S4055 ;S4054,停止动画定时器,整个动画过程已完成;S4055,动画定时器每到一个时间周期会再次回调动画绘制节点UIView的定时器 回调函数以进入步骤S4051 ;S406,定时器回调函数调用动画绘制节点UIView的绘制准备函数DrawNow绘制整 颗界面控件树的动画效果;所述的绘制准备函数DrawNow将调用动画绘制节点UIView的绘制动画内容函数 Draw,动画绘制节点UIView的绘制动画内容函数Draw采用深度遍历的方式调用所有界面 控件节点的绘制动画内容函数Draw,将整颗界面控件树的动画效果绘制屏幕上;所述的绘制准备函数DrawNow还可以通知操作系统(比如symbian系统控件的 DrawNow函数,J2ME平台的canvas类的r印aint函数),由操作系统回调至动画绘制节点 UIView的绘制动画内容函数Draw,在动画绘制节点UIView的绘制动画内容函数Draw中采 用深度遍历的方式将整颗界面控件树的动画效果绘制屏幕上。本发明实施例中通过相互包含构成的复合控件类及其函数,按照产品需求事先 定义各控件节点的动画效果,可以随意组合生成界面控件树,只有根节点动画绘制节点 UIView的绘制准备函数 和系统交互,完成绘制界面控件树的动画效果的目的,同时,通过事先设置的回调接口函数可依次连续执行多个类型的动画效果,动画绘制节点的 动画开启函数被调用时开启一个动画定时器,根据流媒体文件的频率,确定动画定时器的 时间周期,使得画面均勻呈现,根据定义不同的类、对象、和函数类型实现增加、修改或移植 控件树结构,在一个屏幕页面中组织复杂的控件布局,高效地实现整个系统的动画效果,使 应用程序拥有更具吸引力的界面,克服了界面控件不易相互包含以组成复杂的控件系统的 技术问题。实施例三图5是本发明实施例一种界面控件树创建系统结构示意图。所述系统包括基类创建模块、控件类创建模块、控件树创建模块;基类创建模块,与控件类创建模块相连,用于创建界面控件基类UIBase及其操作 函数、动画控制函数、标签状态、当前帧动画内容准备函数和绘制动画内容函数;所述操作函数包括加入、获取、查找子节点、兄弟节点、父节点的函数;所述动画控制函数包括普通动画控制函数和内部动画控制函数,普通动画控制函 数和内部动画控制函数可同时运行;所述普通动画控制函数指整个控件节点相对其兄弟节点的运动,包括平移、缩放、 旋转;所述内部动画控制函数指控件内的变化,包括走马灯字符的移动;普通动画控制函数和内部动画控制函数,分别包括动画开启函数、暂停动画函数、 继续动画函数、结束动画函数;所述的动画开启函数StartAnimation,用于获取控件节点的动画效果类型、动画 时长、动画结束后是否删除节点,控件节点的初始位置和大小,控件节点动画结束时节点的 位置和大小,控件节点结束时是否回调通知控件节点的动画观察者;所述的动画效果类型是按照产品需求事先定义的效果;所述的动画观察者指关注该控件节点动画过程的对象(包括程序中的其他对象、 其他的控件节点),事先将观察者对象的动画回调接口设定给控件节点,当控件节点的动画 状态发生改变时,通过事先设置的回调接口函数通知调用该控件节点者,通过回调接口,可 以依次连续执行多个类型的动画;所述的标签状态记录节点动画的状态,包括动画播放、动画暂停和动画结束;动画开启函数设置标签状态为“动画播放”,播放帧数全部完成后,标签状态就被 设置“动画结束”;暂停动画函数,将标签状态置为“动画暂停”;继续动画函数,将标签状态置为“动画播放”;结束动画函数,将标签状态置为“动画结束”;所述当前帧动画内容准备函数包括准备控件节点的位置、大小、形状、颜色、透明 度,含普通动画内容准备函数、内部动画内容准备函数;所述绘制动画内容函数指绘制控件节点的动画效果的函数;所述的当前帧动画内容准备函数Pr印areAFrameOf Animat ion、普通动画内容准备 函数GenAFrame、内部动画内容准备函数GenAFrame为虚函数,可以修改和增加新的动画效 果类型;
所述的绘制动画内容函数Draw为纯虚函数;控件类创建模块,与基类创建模块和控件树创建模块相连,用于创建派生 于界面控件基类UIBase的具体控件类,如图2,包括动画绘制节点UlView、界面 容器控件UIBox和界面控件节点,并创建动画绘制节点UlView的定时器回调函数 AnimationTimerCallBack ;所述的界面容器控件UIBox是包含界面控件节点的一个容器类;所述界面控件节点包括界面图片Ullmage、界面标签UILable、界面网格UIGrid、 界面走马灯UIMarquee ;所述动画绘制节点UlView在动画开启函数StartAnimation被调用时开启一个时 间周期为50-125毫秒或80毫秒的动画定时器,动画定时器每到一个时间周期回调一次动 画绘制节点UlView的定时器回调函数;控件树创建模块,与控件类创建模块相连,用于组合各控件节点父子兄弟关系创 建生成界面控件树和类的对象;界面控件树可以通过任意组合各控件节点的父子兄弟关系生成不同的界面控件 树,以一个3级界面控件树为例,如图3,子根节点是动画绘制节点UlView对象,第二级节点 是界面容器控件节点UIBox对象,第三级节点就是界面控件节点对象。本发明实施例中通过基类创建模块创建基类UIBase及其操作函数、动画控制函 数和标签状态、当前帧动画内容准备函数、绘制动画内容函数,通过控件类创建派生于界面 控件基类UIBase的具体控件类生成动画绘制节点UlView、界面容器控件UIBox和界面控件 节点以及动画绘制节点UlView的定时器回调函数,通过控件树创建模块组合各控件节点 父子兄弟关系创建生成界面控件树和类的对象,通过相互包含构成复合控件,定义不同的 类、对象、和函数类型实现增加、修改或移植控件树结构,通过事先设置的回调接口函数可 依次连续执行多个类型的动画效果,动画绘制节点的动画开启函数被调用时开启一个动画 定时器,根据移动终端的性能确定动画定时器的时间周期,使得画面均勻呈现,克服了界面 控件不易相互包含以组成复杂的控件系统的技术问题。实施例四图6是本发明实施例一种界面控件树绘制系统结构示意图。所述系统包括动画开启模块、第一判断模块、定时模块、回调模块、第二判断模 块、绘制模块;动画开启模块,与第一判断模块相连,用于运行界面控件节点的动画开启函数 StartAnimation并向第一判断模块发送判断父节点指令,接收第一判断模块的开启指令并 运行父节点的动画开启函数StartAnimation ;第一判断模块,与动画开启模块和定时模块相连,用于接收动画开启模块发送的 判断父节点指令并判断界面控件节点是否存在父节点,如果是,则向动画开启模块发送开 启指令,如果否(即当前界面控件节点是根节点),则向定时模块发送定时指令;定时模块,与第一判断模块、第二判断模块和回调模块相连,用于接收第一判断模 块发送的定时指令并开启一个时间周期为50-125毫秒或80毫秒的动画定时器,动画定时 器每到一个时间周期向回调模块发送一次回调指令,接收第二判断模块发送的停止定时指 令并停止定时器的运行,接收第二判断模块发送的继续定时指令并控制定时器每到一个时间周期向回调模块发送一次回调指令;回调模块,与定时模块、第二判断模块和绘制模块相连,用于接收定时模块发送的 回调指令并调用定时器回调函数AnimationTimerCallBack,定时器回调函数调用根节点的 当前帧动画内容准备函数Pr印areAFrameOf Animat ion,所述当前帧动画内容准备函数包括 绘制普通动画内容准备函数GenAFrame和绘制内部动画内容准备函数GenlnnerAFrame,并 依次调用当前界面控件节点所有子节点的绘制帧动画内容准备函数,当所有节点的绘制帧 动画内容准备就绪后,向绘制模块发送绘制指令,同时向第二判断模块发送判断动画结束 指令;第二判断模块,与回调模块和定时模块相连,用于接收回调模块发送的判断动画 结束指令并判断界面控件节点的标签状态是否都为“动画结束”,如果是,则向定时模块发 送停止定时指令,则整个动画过程已完成;如果否,则向定时模块发送继续定时指令;绘制模块,与回调模块相连,用于接收回调模块发送的绘制指令,并调用根节点的 绘制准备函数DrawNow绘制整颗界面控件树的动画效果;所述的绘制准备函数DrawNow将调用动画绘制节点UlView的绘制动画内容函数 Draw,动画绘制节点UlView的绘制动画内容函数Draw采用深度遍历的方式调用所有界面 控件节点的绘制动画内容函数Draw,将整颗界面控件树的动画效果绘制屏幕上;所述的绘制准备函数DrawNow还可以通知操作系统(比如symbian系统控件的 DrawNow函数,J2ME平台的canvas类的r印aint函数),由操作系统回调至动画绘制节点 UlView的绘制动画内容函数Draw,在动画绘制节点UlView的绘制动画内容函数Draw中采 用深度遍历的方式将整颗界面控件树的动画效果绘制屏幕上。本发明实施例中通过动画开启模块运行界面控件节点的动画开启函数,通过第一 判断模块判断控件节点是否存在父节点,如果存在父节点则动画开启模块运行父节点的动 画开启函数直到运行根节点的动画开启函数,由定时模块开启一个时间周期为50-125毫 秒或80毫秒的动画定时器,动画定时器每到一个时间周期通知回调模块调用定时器回调 函数,并依次调用当前控件节点所有子节点的绘制帧动画内容准备函数,所有节点都准备 就绪了绘制帧动画内容后向绘制模块发送绘制指令进行帧动画的绘制,同时向第二判断模 块发送判断动画结束指令,第二判断模块判断界面控件节点的标签状态是否都为“动画结 束”,如果是,则向定时模块发送停止定时指令则整个动画过程已完成,如果否向定时模块 发送继续定时指令继续进行回调、绘制过程,通过各个模块相互包含构成的复合控件类及 其函数,按照产品需求事先定义各控件节点的动画效果,完成绘制界面控件树的动画效果 的目的,同时,通过事先设置的回调接口函数可依次连续执行多个类型的动画效果,动画绘 制节点的动画开启函数被调用时开启一个动画定时器,根据流媒体文件的频率,确定动画 定时器的时间周期,使得画面均勻呈现,根据定义不同的类、对象、和函数类型实现增加、修 改或移植控件树结构,在一个屏幕页面中组织复杂的控件布局,高效地实现整个系统的动 画效果,使应用程序拥有更具吸引力的界面,克服了界面控件不易相互包含以组成复杂的 控件系统的技术问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种界面控件树的创建方法,其特征在于,所述方法包括以下步骤创建界面控件基类及其操作函数、动画控制函数和标签状态;创建界面控件基类的当前帧动画内容准备函数和绘制动画内容函数;创建派生于界面控件基类的具体控件类,包括动画绘制节点、界面容器控件和界面控件节点;创建动画绘制节点的定时器回调函数;组合各控件节点父子兄弟关系创建生成界面控件树和类的对象。
2.如权利要求1所述的界面控件树的创建方法,其特征在于,所述操作函数包括加 入、获取、查找子节点、兄弟节点、父节点的函数。
3.如权利要求1所述的界面控件树的创建方法,其特征在于,所述动画控制函数包括 普通动画控制函数和内部动画控制函数,普通动画控制函数和内部动画控制函数可同时运 行;所述普通动画控制函数指整个控件节点相对其兄弟节点的运动,包括平移、缩放、旋转;所述内部动画控制函数指控件内的变化,包括走马灯字符的移动; 普通动画控制函数和内部动画控制函数,分别包括动画开启函数、暂停动画函数、继续 动画函数、结束动画函数;所述的动画开启函数,用于获取控件节点的动画效果类型、动画时长、动画结束后是否 删除节点,控件节点的初始位置和大小,控件节点动画结束时节点的位置和大小,控件节点 结束时是否回调通知控件节点的动画观察者;所述的标签状态记录节点动画的状态,包括动画播放、动画暂停和动画结束。
4.如权利要求1所述的界面控件树的创建方法,其特征在于,所述当前帧动画内容准 备函数包括准备控件节点的位置、大小、形状、颜色、透明度,含普通动画内容准备函数、内 部动画内容准备函数。
5.如权利要求1或4所述的界面控件树的创建方法,其特征在于,所述的当前帧动画内 容准备函数、普通动画内容准备函数、内部动画内容准备函数为虚函数,可以修改和增加新 的动画效果类型;所述的绘制动画内容函数为纯虚函数。
6.如权利要求1所述的界面控件树的创建方法,其特征在于,所述界面控件节点包括 界面图片、界面标签、界面网格、界面走马灯。
7.如权利要求1所述的界面控件树的创建方法,其特征在于,所述动画绘制节点在动 画开启函数被调用时开启一个时间周期为50-125毫秒或80毫秒的动画定时器,动画定时 器每到一个时间周期再次回调动画绘制节点的定时器回调函数。
8.如权利要求1所述的界面控件树的创建方法,其特征在于,所述定时器回调函数包 括步骤定时器回调函数调用动画绘制节点的当前帧动画内容准备函数准备绘制的动画内容;当前帧动画内容准备函数调用绘制普通动画内容准备函数和绘制部动画内容准备函 数,并依次调用当前界面控件节点所有子节点的当前帧动画内容准备函数;判断界面控件节点的标签状态是否都为“动画结束”,如果是,则停止动画定时器,整个 动画过程已完成;如果否,则定时器回调函数调用绘制准备函数,由绘制准备函数调用动画 绘制节点的绘制动画内容函数,动画绘制节点的绘制动画内容函数采用深度遍历的方式调 用所有界面控件节点的绘制动画内容函数,绘制整颗界面控件树的动画效果;动画定时器每隔一个时间周期,动画定时器再次回调动画绘制节点的定时器回调函数 以进入步骤“定时器回调函数调用动画绘制节点的当前帧动画内容准备函数准备绘制的动 画内容”。
9.如权利要求8所述的界面控件树的创建方法,其特征在于,步骤“如果否,则定时器 回调函数调用绘制准备函数,由绘制准备函数调用动画绘制节点的绘制动画内容函数,动 画绘制节点的绘制动画内容函数采用深度遍历的方式调用所有界面控件节点的绘制动画 内容函数,绘制整颗界面控件树的动画效果”可以替换为步骤“如果否,则绘制准备函数通 知操作系统并由操作系统回调至动画绘制节点的绘制动画内容函数,在动画绘制节点的绘 制动画内容函数中采用深度遍历的方式绘制整颗界面控件树的动画效果”。
10.一种界面控件树绘制方法,其特征在于,所述方法包括以下步骤 运行界面控件节点的动画开启函数;判断界面控件节点是否存在父节点,如果是则进入步骤“运行界面控件节点的动画开 启函数”,如果否(即当前的控件节点是动画绘制节点),则动画绘制节点开启动画定时器; 动画定时器每到一个时间周期,动画定时器回调动画绘制节点的定时器回调函数; 定时器回调函数调用动画绘制节点的当前帧动画内容准备函数; 定时器回调函数调用动画绘制节点的绘制准备函数绘制整颗界面控件树的动画效果。
11.一种界面控件树创建系统,其特征在于,所述系统包括基类创建模块,与控件类创建模块相连,用于创建界面控件基类及其操作函数、动画控 制函数、标签状态、当前帧动画内容准备函数和绘制动画内容函数;控件类创建模块,与基类创建模块和控件树创建模块相连,用于创建派生于界面控件 基类的具体控件类,包括动画绘制节点、界面容器控件和界面控件节点,并创建动画绘制 节点的定时器回调函数;控件树创建模块,与控件类创建模块相连,用于组合各控件节点父子兄弟关系创建生 成界面控件树和类的对象。
12.—种界面控件树绘制系统,其特征在于,所述系统包括以下步骤动画开启模块,与第一判断模块相连,用于运行界面控件节点的动画开启函数并向第 一判断模块发送判断父节点指令,接收第一判断模块的开启指令并运行父节点的动画开启 函数;第一判断模块,与动画开启模块和定时模块相连,用于接收动画开启模块发送的判断 父节点指令并判断界面控件节点是否存在父节点,如果是,则向动画开启模块发送开启指 令,如果否(即当前界面控件节点为根节点),则向定时模块发送定时指令;定时模块,与第一判断模块、第二判断模块和回调模块相连,用于接收第一判断模块发 送的定时指令并开启一个时间周期为50-125毫秒或80毫秒的动画定时器,动画定时器每 到一个时间周期向回调模块发送一次回调指令,接收第二判断模块发送的停止定时指令并 停止定时器的运行,接收第二判断模块发送的继续定时指令并控制定时器每到一个时间周期向回调模块发送一次回调指令;回调模块,与定时模块、第二判断模块和绘制模块相连,用于接收定时模块发送的回调 指令并调用定时器回调函数,定时器回调函数调用根节点的当前帧动画内容准备函数,所 述当前帧动画内容准备函数包括绘制普通动画内容准备函数和绘制内部动画内容准备函 数,并依次调用当前控件节点所有子节点的绘制帧动画内容准备函数,当所有节点的绘制 帧动画内容准备就绪后,向绘制模块发送绘制指令同时向第二判断模块发送判断动画结束 指令;第二判断模块,与回调模块和定时模块相连,用于接收回调模块发送的判断动画结束 指令并判断界面控件节点的标签状态是否都为“动画结束”,如果是,则向定时模块发送停 止定时指令,则整个动画过程已完成;如果否,则向定时模块发送继续定时指令;绘制模块,与回调模块相连,用于接收回调模块发送的绘制指令,并调用根节点的绘制 准备函数绘制整颗界面控件树的动画效果。
13.—种包括如权利要求11所述界面控件树创建系统的移动终端。
14.一种包括如权利要求12所述界面控件树绘制系统的移动终端。
全文摘要
本发明公开一种界面控件树的创建和绘制的方法、系统及移动终端,本发明通过创建界面控件基类及其操作函数、动画控制函数和标签状态、当前帧动画内容准备函数、绘制动画内容函数,创建派生于界面控件基类的具体控件类生成动画绘制节点、界面容器控件和界面控件节点,创建动画绘制节点的定时器回调函数,组合各控件节点父子兄弟关系创建生成界面控件树和类的对象,只有根节点动画绘制节点的绘制准备函数和系统交互,完成绘制界面控件树的动画效果的目的,通过动画定时器的时间周期,使得控件树绘制效果均匀,克服了界面控件不易相互包含以组成复杂的控件系统的技术问题,在一个屏幕页面中组织复杂的控件布局,高效地实现整个系统的动画效果。
文档编号G06F9/44GK101980154SQ20101053063
公开日2011年2月23日 申请日期2010年11月2日 优先权日2010年11月2日
发明者郭松 申请人:深圳市融创天下科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1