一种多视图切换的系统和方法

文档序号:6424844阅读:115来源:国知局
专利名称:一种多视图切换的系统和方法
技术领域
本发明涉及程序开发领域,特别是涉及一种基于S60的单视图框架下实现多视图切换的系统和方法。
背景技术
目前市场上智能手机的应用越来越广泛,由于其携带方便且功能齐全受到很多用户的喜爱。因为智能手机的可应用程序比较多,且每个应用程序中一般都含有多个视图(view),并且在应用程序执行时,需要在多个视图下进行不断地切换,如应用程序QQ或MSN等聊天软件,用户可以在应用程序中打开不同的聊天界面或好友的资料界面等等,这时就需要在同一个应用程序中对多个视图进行切换。目前,这种切换方式一般是基于系统框架来支持实现的,利用多视图框架来实现多视图的切换,如诺基亚智能手机S60 (即诺基亚 Series 60),但其受到多视图框架技术的限制,很难满足多视图切换和带动画效果的视图切换要求。图I为诺基亚智能手机S60平台支持的多视图框架下多视图切换的示意图,其中AppUi包含多个视图View,如视图Viewl和视图View2,而每个视图包含一个用于存储所述视图内容的容器Container,如视图Viewl和视图View2分别对应包含容器Containerl和容器Container2。在两个视图进行切换时,如显示视图Viewl时,则调用显示视图Viewl的DoActivateL函数来创建容器Containerl,如当视图Viewl不显示时则调用DoDeactivate函数来删除所述容器Containerl,释放资源,同时显示视图View2,同样调用显示视图View2的DoActivateL函数来创建容器Container2,当不显示视图View2时则调用DoDeactivate函数来删除所述容器Container2,释放资源。这样便完成了视图Viewl和视图View2之间的切换。这种多视图切换框架下视图切换系统存在下述缺点利用DoActivateL函数创建容器时对系统的要求很高,即系统开销大,效率比较低;很难适应需要快速不断切换视图的应用;而且很难实现视图切换过程中需要带有淡入淡出、滑动等动画效果。因此有必要提出一种新的技术方案来解决上述问题。

发明内容
本部分的目的在于概述本发明的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和发明名称中可能会做些简化或省略以避免使本部分、说明书摘要和发明名称的目的模糊,而这种简化或省略不能用于限制本发明的范围。本发明的目的在于提供一种多视图切换的系统和方法,其在在单视图框架下实现多视图切换,并加入了视图切换动画,使应用程序更加友好。根据本发明的一方面,本发明提供一种多视图切换的系统,其包括切换指示获取模块,获取切换指示,所述切换指示包括所要切换到的新视图的标识;新视图创建模块,根据所述新视图的标识创建对应的新视图数据,所述新视图数据包括当前最新的界面数据;数据缓存模块,将当前所述新视图数据中的界面数据放入到指定的缓冲区内以替换掉原有的界面数据;和绘制模块,将所述缓冲区内的数据绘制到屏幕上。进一步的,所述系统还包括重绘指示获取模块和新界面创建模块,其中所述重绘指示获取模块在收到最新切换指示后至收到下一次切换指示之前,获取重绘指示,所述重绘指示包括所要重绘的新界面的标识;所述新界面创建模块根据所述新界面的标识和当前的视图数据创建对应的新界面数据。进一步的,所述重绘指示获取模块具体用于每隔预设的时间段检测是否收到重绘指示,如果是,则执行所述获取重绘指示的步骤。进一步的,所述系统还包括切换指示判定模块,其每隔预定的时间段检测是否收 到切换指示,如果是,则执行将所述缓冲区内的数据绘制到屏幕上的步骤。进一步的,所述新界面创建模块具体用于调用所述视图下新界面的标识对应的界面创建函数,以创建对应的新界面。进一步的,所述新视图创建模块调用所述新视图的标识对应的轻量级视图创建函数,以创建对应的新视图。进一步的,所述系统还包括切换效果产生模块,其用于创建所述新视图的切换效果,并在第一次绘制该新的视图中界面时利用该切换效果来绘制包含所述切换效果的新界面。根据本发明的另一方面,本发明还提供一种在单视图框架下实现多视图切换的方法,其包括获取切换指示,所述切换指示包括所要切换到的新视图的标识;根据所述新视图的标识创建对应的新视图数据,所述新视图数据包括当前最新的界面数据;将当前所述新视图数据中的界面数据放入到指定的缓冲区内以替换掉原有的界面数据;将所述缓冲区内的数据绘制到屏幕上。进一步的,所述方法还包括在收到最新切换指示后至收到下一次切换指示之前,获取重绘指示,所述重绘指示包括所要重绘的新界面的标识;根据所述新界面的标识和当前的视图数据创建对应的新界面数据。进一步的,所述获取重绘指示,具体包括每隔预设的时间段检测是否收到重绘指示,如果是,则执行所述获取重绘指示的步骤。进一步的,所述方法还包括每隔预设的时间段检测是否收到切换指示,如果是,则执行将所述缓冲区内的数据绘制到屏幕上的步骤。进一步的,所述根据所述新视图的标识创建对应的新视图数据,具体包括调用所述新视图的标识对应的轻量级视图创建函数,以创建对应的新视图数据。进一步的,所述根据所述新视图的标识创建对应的新视图数据之后,还包括创建所述新视图的切换效果,并在第一次绘制该新的视图中界面时利用该切换效果来绘制包含所述切换效果的新界面。与现有技术相比,本发明在单视图框架下实现多视图切换,其在需要进行视图更新时利用轻量级视图创建函数创建新的视图数据和切换效果并将缓冲区内原有的视图数据中界面数据进行替换,在进行绘制该视图时调用该切换效果实现了动画切换,且对系统的开销大大降低;在进行视图切换时可以释放掉前一视图加载的数据,从而减少了内存资源的占有量。


为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。其中图I为诺基亚智能手机S60平台支持的多视图框架下多视图切换的示意图;图2为本发明中的系统在一个实施例中的结构示意图;图3为本发明中单视图框架在一个实施例中的示意图;图4为本发明中的方法在一个实施例中的流程图;和
图5为图3中的刷新屏幕时对应的方法流程图。
具体实施例方式本发明的详细描述主要通过逻辑块或其他概括性的描述来直接或间接地表述了本发明技术方案的运作。为透彻的理解本发明,在接下来的描述中陈述了很多特定细节。而在没有这些特定细节时,本发明则可能仍可实现。此处的这些描述和陈述主要是为了向所属领域内的其他技术人员有效的介绍本发明技术方案的本质。换句话说,为避免混淆本发明的目的,由于熟知的方法和程序已经容易理解,因此它们并未被详细描述。此处所称的“一个实施例”或“实施例”是指可包含于本发明至少一个实现方式中的特定特征、结构或特性。在本说明书中不同地方出现的“在一个实施例中”并非均指同一个实施例,也不是单独的或选择性的与其他实施例互相排斥的实施例。此外,表示一个或多个实施例的功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。本发明提供的一种在单视图切换框架下实现多视图切换的技术,其利用单视图框架完成多视图切换,在创建新视图时选用轻量级视图创建函数,可以降低开销、切换速度更快,且在切换的过程中能够实现淡入淡出,滑动等效果。图2示出了本发明中的系统在一个实施例200中的结构示意图,其中所述系统包括切换指示获取模块210、新视图创建模块220、数据缓存模块230、绘制模块240,其在需要进行视图切换时,创建新的视图并将其绘制到屏幕上。所述切换指示获取模块210用于获取切换指示,所述切换指示包括所要切换到的新视图的标识。在实际应用中,当使用者进行用户操作或程序产生内部逻辑变化时均可以产生一个切换指示。比如,当使用者在使用聊天模式时,使用者在打开一个新的聊天对话框时就会产生一个切换指示。当需要进行视图切换时,所述切换指示还包括切换到的新视图的标识,利用该标识便于调用对应的新视图。在一个实施例中,可以选用一个变量来实时判定是否需要进行视图切换,当变量为真(true)时,则可认为需要进行视图切换,产生所述视图切换指示,此时通过进行视图切换的命令(如可以通过按钮选择、触摸屏选择或语音选择等方式产生)获取切换到的新视图的标识。
所述新视图创建模块220用于根据所述新视图的标识创建对应的新视图数据,所述新视图数据包括当前最新的界面数据,所述当前最新的界面数据即为新视图产生需要刷到屏幕上的界面数据。通常,所述视图数据除了包含需要绘制到屏幕上的界面数据以外还包含一些不需要绘制的逻辑状态。当利用所述切换指示获取模块210获取到需要进行视图切换的指令时,则利用切换指令中需要切换到的新视图的标识来创建对应的新视图数据。为了减少系统功耗、加快切换速度,在本系统中利用新视图对应的轻量级视图创建函数来创建对应的新视图。所述轻量级视图创建函数为视图类下的视图创建函数,在每个视图类下进行视图的创建比较简单。在一个实施例中,所述视图类继承界面类,而界面类通过一接口可以实现一个视图所需的页面绘制、按键处理、资源加载和资源释放等功能,这样保证了每个视图都是在一个系统视图里面实现的,不存在系统视图之间的切换,所以占用资源极少,切换速度较快。需要注意的是,所述新视图创建模块220在创建新视图时必须实现视图创建接口,利用该视图创建接口提供视图类下的对应的对象,从而才可调用所述轻量级创建函数 实现新视图的创建。所述数据缓存模块230用于将所述新视图数据中的界面数据放入到指定的缓冲区内以替换掉原有的界面数据。所述缓冲区可用于缓存最新的界面数据,由于界面数据比较大,可能需要几秒钟甚至更长的时间才能绘制到屏幕上,而且有时还会出现闪烁现象,为了避免这种情况的发生,可以采用双缓冲技术,即在内存中创建一个额外的与屏幕大小一样的CFbsBitmap对象(即所述缓冲区),将需要绘制的界面数据放入所述对象中,然后再一次性地将这个对象上的图形拷贝到屏幕上,这样会大大加快绘图的速度且有效地避免了闪屏现象。以上的各个模块则实现了 当用户下达进行视图切换指令后,准备好需要绘制新视图界面的数据,接下来就是进行绘制界面。此时在进行绘制界面之前,通常会设置一个切换指示判定模块,其每隔预定的时间段检测是否收到切换指示。在具体实现时,会利用一个变量来标定是否收到了切换指示,当该变量为真时则收到了切换指示。此时通过一个定时器每隔预定的时间段检测该变量是否为真,如果该变量为真,则表明可以将所述缓冲内的界面数据绘制到屏幕上。所述绘制模块240用于将所述缓冲区内的界面数据绘制到屏幕上。在一个实施例中,可以选用系统的绘制函数(如DrawO回调函数)将缓冲区内的界面数据一次性绘制到屏幕上。系统在获得切换指示后,在建立视图数据时同时为该视图数据准备好的对应的绘制函数,直到通过上述定时器的判定需要进行视图切换才利用该绘制函数绘制缓冲区内的数据到屏幕上。为了实现应用中的动画切换效果,所述系统还包括切换效果产生模块,其用于创建所述新视图的切换效果,并在绘制该新的视图时利用该切换效果来绘制包含所述切换效果的新视图。所述切换效果可以为淡入淡出、滑出等,从而使得应用程序更加具有美感,且更加人性化。在实际应用中,如果需要实现视图切换效果,当根据视图标识产生新的视图数据时就可以产生对应的视图切换效果,这样在进行视图绘制时,可以直接调用该视图切换效果来绘制该视图。进一步的,当视图被隐藏时,应当释放对应视图所占的资源。在实际应用中,通过在一个视图类中定义一个用于创建视图的接口和一个用于释放视图数据的接口,当视图被激活时调用所述用于创建视图的接口来创建新的视图,而当视图需要隐藏时则调用所述释放视图数据的接口以释放资源。此外,在具体应用中,在同一个视图下会需要不断地刷新界面,如聊天对话框随着输入的聊天记录不同会相应产生不同的界面。因此,在一个不变的视图下需要进行重绘识别与重绘,这就要求系统中还需要重绘指示获取模块250和新界面创建模块260。其中,所述重绘指示获取模块250在收到最新切换指示后至收到下一次切换指示之前,获取重绘指示,所述重绘指示包括所要重绘的新界面的标识。其在每隔预设的时间段检测是否收到重绘指示,如果是,则执行所述获取重绘指示的步骤。
在一个实施例中,可以选用一个定时器来设定所述时间段,当到达所述定时器设定的时间时,所述重绘指示获取模块250获取重绘指示;通常为了防止定时器不断刷新屏幕,减少CPU耗电,其频率设定为手机屏幕硬件刷新率相近的一个值,如一手机的屏幕硬件刷新率为20帧每秒,可将定时器的频率设定为10帧每秒、20帧每秒、21帧每秒等。在一个实施例中,可以选用一个变量来实时判定是否需要进行重绘,当变量为真(true)时,则可认为需要进行界面重绘,产生所述重绘指示,此时通过之前的界面获取切换到的需重绘的界面的标识;当变量为假(false)时,则可认为不需要进行界面重绘,继续进行定时判断。值得注意的是,在进行视图切换和重绘的过程中均进行变量真假的判断,这两种情况下变量可以为同一个变量,当用户执行切换视图操作或在界面上输入了新的数据时,所述变量均变为真,而当绘制完成后所述变量则变为假。由上可知,当用户进行视图切换时,首先所述变量变为真,此时建立新视图的数据以及该数据对应的绘制函数,而当定时器到一定时间时则进行该变量的判定,当判定该变量为真时则调用所述绘制函数将数据绘制到屏幕上,随后将该变量设置为假;当用户向该视图的界面输入新的数据时,所述变量为真,定时器判定该变量是否为真,当判定该变量为真时则调用所述绘制函数将最新的数据绘制到屏幕上,随后将该变量设置为假。在一个具体的实施例中,如图3所示,其示出了本发明中单视图框架在一个实施例中的示意图,该图通过各个类实现该系统的功能。其中每个视图称作为Canvas,AppUi类为应用程序界面,单视图AppView具有一个屏幕缓冲区iBufBmp,定时器Timer和用于视图管理的CanvasManager。其各个部分在该系统中的功能具体如下Canvas类代表视图,即应用程序中的每一个视图,其带有Activate ()和DeactivateO两个抽象接口,当切换指示中含有某一视图标识),则意味着所述视图被激活,此时调用该视图对应的Canvas类中轻量级视图创建函数Activate ()以创建新的视图数据;当视图被隐藏时,调用DeactivateO以释放资源;通常,应用程序中含有几个不同种类的视图,每个种类的视图对应不同的Canvas类,如在QQ应用程序中,Canvas I类可以为与所有好友对话的对话视图类,而Canvas2为查看所有好友资料的视图类;CanvasManager是Canvas管理类,用于下达创建视图命令,在本发明中,程序启动时并不创建所有视图,而是等到需要显示某一个视图时再创建对应的视图即Canvas,所述CanvasManager将从切换指示中获取的视图标识传递到对应Canvas类中以确定调用哪个类中的轻量级视图创建函数;此外,使用该Canvas框架时,必须实现MCanvasSupport接口以提供Canvas对象;根据每个Canvas类创建具体的对象以产生具体对应视图的数据;最后,绘图函数DrawNowO将缓冲区内的数据绘制到屏幕上,从而完成视图切换。在判断是否需要进行重绘界面或需要进行视图切换时,需设置一变量iUpdateCavas,当需要进行重绘界面或需要进行视图切换时iUpdateCanvas置为真(true),当不需要进行重绘界面时iUpdateCanvas置为假(false),定时器Timer在达到其预定的时刻时先检查iUpateCavas是否为真,当为真时则预示着需要进行重绘界面,产生重绘指示,此时重绘指示会带有需要重绘界面的标识。上述所说的各个类或对象以它们之间的调用均是所属领域的普通技术人员都能 够实现的,且不作为本发明的技术要点,所以这里就不在详述了。由上可知,本发明提供的系统利用轻量级视图创建函数快速实现视图的创建和切换,且仅适用一个单视图下就可以实现多个视图的切换,占用资源少且实现简单,减少开发成本,提闻开发效率。本发明还提供一种在单视图框架下实现多视图切换的方法,其在单视图框架下每需要更新一个视图时则产生一个视图,实现简单,且节省资源,并可简单实现动画的切换效果。图4为本发明中的方法在一个实施例中的流程图,该方法包括
步骤410,获取切换指示,所述切换指示包括所要切换到的新视图的标识。当需要进行视图切换时,所述切换指示还包括切换到的新视图的标识,利用该标识便于调用对应的新视图。在一个实施例中,可以选用一个变量来实时判定是否需要进行视图切换,当变量为真(true)时,则可认为需要进行视图切换,产生所述视图切换指示,此时通过进行视图切换的命令(如可以通过按钮选择、触摸屏选择或语音选择等方式产生)获取切换到的新视图的标识。在实际应用中,当使用者进行用户操作或程序产生内部逻辑变化时均可以产生一个切换指示。比如,当使用者在使用聊天模式时,使用者在打开一个新的聊天对话框时就会产生一个切换指示。步骤420,根据所述新视图的标识创建对应的新视图数据。其中所述新视图数据包括当前最新的界面数据,所述当前最新的界面数据即为新视图产生需要刷到屏幕上的界面数据。通常,所述视图数据除了包含需要绘制到屏幕上的界面数据以外还包含一些不需要绘制的逻辑状态。当获取到需要进行视图切换的指令时,则利用切换指令中需要切换到的新视图的标识来创建对应的新视图数据。为了减少系统功耗、加快切换速度,在本系统中利用新视图对应的轻量级视图创建函数来创建对应的新视图。所述轻量级视图创建函数为视图类下的视图创建函数,在每个视图类下进行视图的创建比较简单。在一个实施例中,所述视图类继承界面类,而界面类通过一接口可以实现一个视图所需的页面绘制、按键处理、资源加载和资源释放等功能,这样保证了每个视图都是在一个系统视图里面实现的,不存在系统视图之间的切换,所以占用资源极少,切换速度较快。需要注意的是,所述新视图创建模块在创建新视图时必须实现视图创建接口,利用该视图创建接口提供视图类下的对应的对象,从而才可调用所述轻量级创建函数实现新视图的创建。步骤430,将所述新视图数据放入到指定的缓存区内以替换掉原有的视图数据。所述缓冲区可用于缓存最新的视图数据中的界面数据,由于界面数据比较大,可能需要几秒钟甚至更长的时间才能绘制到屏幕上,而且有时还会出现闪烁现象,为了避免这种情况的发生,可以采用双缓冲技术,即在内存中创建一个额外的与屏幕大小一样的CFbsBitmap对象(即所述缓冲区),将需要绘制的界面数据放入所述对象中,然后再一次性地将这个对象上的图形拷贝到屏幕上,这样会大大加快绘图的速度。以上的步骤实现了 当用户下达进行视图切换指令后,准备好需要绘制新视图界面的数据,接下来就是进行绘制界面。此时在进行绘制界面之前,通常会在每隔预设的时间 内检测是否收到切换指示。在具体实现时,会利用一个变量来标定是否收到了切换指示,当该变量为真时则收到了切换指示。此时通过一个定时器每隔预定的时间段检测该变量是否为真,如果该变量为真,则表明可以将所述缓冲内的界面数据绘制到屏幕上。即开始执行步骤440的工作。步骤440,将所述缓存区内的数据绘制到屏幕上。在一个实施例中,可以选用系统的DrawO回调函数将缓冲区内的视图数据一次性绘制到屏幕上。系统在获得切换指示后,在建立视图数据时同时为该视图数据准备好的对应的绘制函数,直到通过上述定时器的判定需要进行视图切换才利用该绘制函数绘制缓冲区内的数据到屏幕上。为了实现应用中的动画切换效果,根据所述新视图的标识创建对应的新视图数据之后,所述方法还包括创建所述新视图的切换效果,并在绘制该新的视图时利用该切换效果来绘制包含所述切换效果的新视图。所述切换效果可以为淡入淡出、滑出等,从而使得应用程序更加具有美感,且更加人性化。在实际应用中,如果需要实现视图切换效果,当根据视图标识产生新的视图数据时就可以产生对应的视图切换效果,这样在进行视图绘制时,可以直接调用该视图切换效果来绘制该视图。此外,在具体应用中,在同一个视图下会需要不断地刷新界面,如聊天对话框随着输入的聊天记录不同会相应产生不同的界面。因此,在一个不变的视图下需要进行重绘识别与重绘,这就要求所述方法中还需要步骤450,在收到最新切换指示后至收到下一次切换指示之前,获取重绘指示,所述重绘指示包括所要重绘的新界面的标识;步骤460,根据所述新界面的标识和当前的视图数据创建对应的新界面数据。其中获取重绘指示步骤具体包括在每隔预设的时间段检测是否收到重绘指示,如果是,则执行所述获取重绘指示的步骤。在一个实施例中,可以选用一个定时器来设定所述时间段,当到达所述定时器设定的时间时,则获取重绘指示;通常为了防止定时器不断刷新屏幕,减少CPU耗电,其频率设定为手机屏幕硬件刷新率相近的一个值,如一手机的屏幕硬件刷新率为20帧每秒,可将定时器的频率设定为10帧每秒、20帧每秒、21帧每秒等。在一个实施例中,可以选用一个变量来实时判定是否需要进行重绘,当变量为真(true)时,则可认为需要进行界面重绘,产生所述重绘指示,此时通过之前的界面获取切换到的需重绘的界面的标识;当变量为假(false)时,则可认为不需要进行界面重绘,继续进行定时判断。值得注意的是,在进行视图切换和重绘的过程中均进行变量真假的判断,这两种情况下变量可以为同一个变量,当用户执行切换视图操作或在界面上输入了新的数据时,所述变量均变为真,而当绘制完成后所述变量则变为假。由上可知,当用户进行视图切换时,首先所述变量变为真,此时建立新视图的数据以及该数据对应的绘制函数,而当定时器到一定时间时则进行该变量的判定,当判定该变量为真时则调用所述绘制函数将数据绘制到屏幕上,随后将该变量设置为假;当用户向该视图的界面输入新的数据时,所述变量为真,定时器判定该变量是否为真,当判定该变量为 真时则调用所述绘制函数将最新的数据绘制到屏幕上,随后将该变量设置为假。在一个具体的实施例中,请参阅图5所示,其示出了图3中刷新屏幕时对应的方法流程图。所述方法包括步骤510,启动程序并进行初始化;步骤520,开始定时器Timer ;步骤530,定时器回调TimeOut以确定定时器指定的时刻;步骤540,判断变量iCanvasUpdate是否为真,若判断为假,则返回步骤520 ;步骤550,若所述变量iCanvasUpdate为真,则CanvasManager返回当前激活的视图Canvas,并通过MCanvasSupport接口提供Canvas对象,从而产生该视图的新界面数据,并将该数据发送给缓存区;步骤560,调用激活的视图Canvas的绘制函数DrawNow ;和步骤570,所述绘制函数DrawNow把缓存区内的数据刷新到屏幕上,返回步骤520。综上所述,本发明所提供的在单视图框架下实现多视图切换的方法在需要更新视图时才创建一个视图,否则不创建,在产生新的视图数据时会将原有创建的视图资源释放掉,节省了资源,且实现快速切换,并在切换时嵌入了切换效果,使其应用程序更加友好。上述说明已经充分揭露了本发明的具体实施方式
。需要指出的是,熟悉该领域的技术人员对本发明的具体实施方式
所做的任何改动均不脱离本发明的权利要求书的范围。相应地,本发明的权利要求的范围也并不仅仅局限于前述具体实施方式
。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种多视图切换的系统,其特征在于,其包括 切換指示获取模块,用于获取切換指示,所述切换指示包括所要切換到的新视图的标识; 新视图创建模块,用于根据所述新视图的标识创建对应的新视图数据,所述新视图数据包括当前最新的界面数据; 数据缓存模块,用于将所述当前最新的界面数据放入到指定的缓冲区内以替换掉原有的界面数据;和 绘制模块,用于将所述缓冲区内的数据绘制到屏幕上。
2.根据权利要求I所述的系统,其特征在于,所述系统还包括重绘指示获取模块和新界面创建模块,其中 所述重绘指示获取模块在收到最新切换指示后至收到下一次切换指示之前,获取重绘指示,所述重绘指示包括所要重绘的新界面的标识; 所述新界面创建模块根据所述新界面的标识创建对应的新界面数据。
3.根据权利要求2所述的系统,其特征在于,所述重绘指示获取模块具体用于 每隔预设的时间段检测是否收到重绘指示,如果是,则执行所述获取重绘指示的步骤。
4.根据权利要求2所述的系统,其特征在于,所述新界面创建模块具体用于 调用所述视图下新界面的标识对应的界面创建函数,以创建对应的新界面。
5.根据权利要求I所述的系统,其特征在于,所述系统还包括切換指示判定模块,其每隔预定的时间段检测是否收到切換指示,如果是,则执行将所述缓冲区内的数据绘制到屏.上的步骤。
6.根据权利要求I所述的系统,其特征在于所述新视图创建模块具体用于 调用所述新视图的标识对应的轻量级视图创建函数,以创建对应的新视图。
7.根据权利要求I所述的系统,其特征在于,所述系统还包括 切換效果产生模块,用于创建所述新视图的切换效果,并在第一次绘制该新的视图中界面时利用该切换效果来绘制包含所述切换效果的新界面。
8.一种多视图切换的方法,其特征在于,其包括 获取切換指示,所述切换指示包括所要切換到的新视图的标识; 根据所述新视图的标识创建对应的新视图数据,所述新视图数据包括当前最新的界面数据; 将所述最新的界面数据放入到指定的缓冲区内以替换掉原有的界面数据; 将所述缓冲区内的数据绘制到屏幕上。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括 在收到最新切换指示后至收到下一次切换指示之前,获取重绘指示,所述重绘指示包括所要重绘的新界面的标识; 根据所述新界面的标识创建对应的新界面数据。
10.根据权利要求9所述的方法,其特征在于,所述获取重绘指示,具体包括 每隔预设的时间段检测是否收到重绘指示,如果是,则执行所述获取重绘指示的步骤。
11.根据权利要求9所述的方法,其特征在于所述根据所述新界面的标识和当前的视图数据创建对应的新界面数据,具体包括调用所述视图下新界面的标识对应的界面创建函数,以创建对应的新界面。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括 每隔预设的时间段检测是否收到切換指示,如果是,则执行将所述缓冲区内的数据绘制到屏幕上的步骤。
13.根据权利要求12所述的方法,其特在于,所述根据所述新视图的标识创建对应的新视图数据,具体包括 调用所述新视图的标识对应的轻量级视图创建函数,以创建对应的新视图数据。
14.根据权利要求8所述的方法,其特征在于,所述根据所述新视图的标识创建对应的新视图数据之后,还包括 创建所述新视图的切换效果,并在第一次绘制该新的视图中界面时利用该切换效果来绘制包含所述切换效果的新界面。
全文摘要
本发明提供一种多视图切换的方法,其包括获取切换指示,所述切换指示包括所要切换到的新视图的标识;根据所述新视图的标识创建对应的新视图,所述新视图数据中包括当前最新的界面数据;将所述新视图数据中的最新界面数据放入到指定的缓冲区内以替换掉原有的界面数据;将所述缓冲区内的数据绘制到屏幕上;该方法能够快速切换视图,且实现切换时的动画效果,减少开发成本,提高开发效率。
文档编号G06F9/44GK102799421SQ20111013734
公开日2012年11月28日 申请日期2011年5月25日 优先权日2011年5月25日
发明者莫沙, 李飞云, 任桥, 周兴, 周连江 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1