CN102541515B - 一种实现切屏特效的方法及装置 - Google Patents
一种实现切屏特效的方法及装置 Download PDFInfo
- Publication number
- CN102541515B CN102541515B CN201010584964.7A CN201010584964A CN102541515B CN 102541515 B CN102541515 B CN 102541515B CN 201010584964 A CN201010584964 A CN 201010584964A CN 102541515 B CN102541515 B CN 102541515B
- Authority
- CN
- China
- Prior art keywords
- bitmap
- switching effect
- screen switching
- information
- layer
- 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
Landscapes
- Processing Or Creating Images (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种实现切屏特效的方法及装置。该方法包括:预先设置切屏特效类型对应的切屏特效对象模板信息;获取当前图层位图图像信息以及切屏后图层位图图像信息,并存储至切屏特效对象模板;根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放。应用本发明,可以增强切屏特效效果、提高用户体验。
Description
技术领域
本发明涉及切屏技术,特别涉及一种实现切屏特效的方法及装置。
背景技术
对于移动电话等终端设备来说,用户通过移动电话软件界面浏览相关信息时,经常需要将当前浏览的界面切屏到另一需要浏览的界面,为了增加支持在同一操作系统平台或不同操作系统平台切屏过程中用户的体验,提出了切屏特效的方法,即在实现屏幕切换(当前浏览界面至下一需要浏览的界面)的过程中,向用户展示一些动画效果,例如,百叶窗、缩放、渐显渐隐、翻转、翻页等特效,从而通过切屏特效提高用户的视觉感受、满足用户视觉多样化的需求。
现有实现切屏特效的方法包括以下三种技术方案,下面进行简要说明:
一、动画播放方式:获取当前屏幕包含的图像信息,通过对获取的图像信息(特效对象)按照预先设置的策略进行图像变换,例如,对图像进行平移、缩放、旋转等变换,形成顺序待播放的图像帧(Frame),也就是静止的画面,然后,在预先指定的位置利用帧画面转换动画,即顺序播放进行图像变换形成的图像帧,例如,每秒播放25帧图像,与电影相类似。
二、基于组件的游戏框架方式:组件是指具有自身绘制逻辑和事件传递逻辑、采用数据和方法进行简单封装的特定容器,通过将预先设置的切屏特效代码耦合到框架逻辑的组件中,动态改变当前界面窗口的C1ient绘制区域并通过动态地添加和删除多个子组件来实现一些简单特效。
三、视图(View)图形变换:预先定义一组用于图形变换的类型、触发时间、持续时间的指令,指令可以通过可扩展标记语言(XML,ExtensibleMarkup Language)文件方式定义,例如,预先设置表示渐变透明度动画效果的alpha、表示渐变尺寸伸缩动画效果的scale、表示画面转换位置移动动画效果的translate、表示画面转移旋转动画效果的rotate等属性值,也可以通过源代码方式定义,通过设置各参数属性值,程序沿着时间线执行这些指令,根据设置的各参数属性值对视图里的对象进行图形变换,从而可以实现切屏特效的动画效果,即通过对用户交互界面的视图的内容进行一系列的图形变换,例如,平移、缩放、旋转、透明度变换来实现动画效果。
由上述可见,现有的实现切屏特效的方法,对于技术方案一,由于只能在指定位置进行播放,无法实现渐变动画;对于技术方案二,只能实现一些简单的特效,而且,需要将切屏特效代码耦合到框架逻辑中,移植性较差;对于技术方案三,需要编程人员不断修改各参数属性值才能实现切屏效果,灵活性不强、且不易移植。而且,上述三种技术方案,均只能对当前屏幕进行操作,没有考虑切屏后的图像数据,使得在屏幕切换过程中,尤其是切屏至切屏后的界面时,动画衔接不流畅、切屏特效效果较差,对用户视觉造成极大的冲击,从而影响用户体验。
发明内容
有鉴于此,本发明的主要目的在于提出一种实现切屏特效的方法,增强切屏特效效果、提高用户体验。
本发明的另一目的在于提出一种实现切屏特效的装置,增强切屏特效效果、提高用户体验。
为达到上述目的,本发明提供了一种实现切屏特效的方法,该方法包括:
预先设置切屏特效类型对应的切屏特效对象模板信息;
获取当前图层位图图像信息以及切屏后图层位图图像信息,并存储至切屏特效对象模板;
根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;
根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放。
所述获取当前图层位图图像信息以及切屏后图层位图图像信息具体包括:
通过抓图软件以及图像识别软件获取当前屏幕对应的位图图像信息;
根据用户输入的获取切屏后屏幕的指令,通过解析用户指令,调用相应函数从后台获取用户指令对应的切屏后屏幕中的位图图像信息。
所述根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息具体包括:
切屏特效对象模板根据设置的播放帧数生成对应的位图遮罩子模板,每一位图遮罩子模板对应一帧图像,用于对当前图层位图图像以及切屏后图层位图图像进行遮罩处理;
根据预先设置的位图遮罩策略设置位图遮罩子模板中的位图遮罩区域,确定位图遮罩区域映射的当前图层位图图像以及切屏后图层位图图像。
所述根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放具体包括:
接收切屏指令,根据切屏特效对象模板信息中的位图遮罩信息对切屏特效对象模板中的位图遮罩子模板进行遮罩处理;
根据存储的位图布局信息对遮罩处理的位图遮罩子模板进行变换生成待播放图像帧,按照预先设置的播放帧率进行播放。
所述根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息具体包括:
获取切屏前后屏幕包含的位图数据信息;
分别在位图遮罩子模板中创建两个图层中包含的位图以及对应的遮罩位图,将当前屏幕的所有子孙控件绘制到当前的位图层中,将切屏后屏幕显示的内容截屏并保存到切屏后图层的位图中。
所述根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放具体包括:
将创建好的两个图层插入到动画播放队列中;
根据接收的枚举值从预先存储的枚举值与切屏特效类型的映射关系中获取该传输的枚举值对应的切屏特效类型;
调用预先设置的对应切屏特效类型的构造函数构造动画播放队列中的图层,形成实例化切屏效果对象;
将生成的切屏特效对象作为成员对象加入到图层对象的数据结构中;
启动动画播放引擎的播放接口,循环地对数据结构中的前后两个图层的位图进行绘制;
根据位图布局信息矩阵对绘制的图层进行运算;
根据动态输入的帧率参数调节切屏动画播放速度。
所述切屏特效类型包括:淡入淡出、百叶窗、翻页、翻转以及棋盘。
所述切屏特效对象模板信息包括:位图图像信息、位图遮罩信息以及位图布局信息。
所述位图图像信息包括:当前图层位图图像信息以及切屏后图层位图图像信息。
所述位图布局信息包含:切屏特效对象模板的平移值信息、缩放值信息以及旋转值信息。
所述切屏特效播放参数包括:切屏特效播放帧率以及播放帧数、切屏特效播放帧率及播放时间、或者,播放帧数及播放时间。
采用独占模式或中断模式进行播放。
一种实现切屏特效的装置,该装置包括:切屏特效引擎以及动画播放引擎,其中,
切屏特效引擎,用于存储预先设置的切屏特效类型对应的切屏特效对象模板信息,获取当前图层位图图像信息以及切屏后图层位图图像信息,根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;
动画播放引擎,用于从切屏特效引擎读取切屏特效对象模板信息,生成待播放图像帧并进行播放。
由上述的技术方案可见,本发明提供的一种实现切屏特效的方法及装置,预先设置切屏特效类型对应的切屏特效对象模板信息;获取当前图层位图图像信息以及切屏后图层位图图像信息,并存储至切屏特效对象模板;根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放。这样,通过切屏特效引擎来控制当前图层以及切屏后图层绘制的方式有较好的代码移植性,可以很好应在各个平台上,而无须对代码做过多修改,动画衔接流畅、切屏特效效果强,提高了用户体验。
附图说明
图1为本发明实施例实现切屏特效的方法流程示意图。
图2为本发明实施例实现翻页切屏效果的流程示意图。
图3为本发明实施例基于图1和图2添加切屏特效对象的时序流程示意图。
图4为本发明实施例实现切屏特效的装置结构示意图。
图5为本发明实施例切屏特效引擎与切屏特效对象的类图关系结构示意图。
图6为本发明实现切屏特效的装置框架结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明实施例中,通过设置切屏特效引擎以及动画播放引擎,在切屏特效引擎中根据用户所需的切屏特效类型预先设置对应的切屏特效对象模板,并管理各切屏特效对象的生命周期。分别获取当前屏幕(当前图层)以及切屏后的屏幕(切屏后图层)包含的图像信息,根据获取的图像信息以及切屏特效对象模板设置图层中的遮罩位图,输出至动画播放引擎,动画播放引擎内部启动定时器(Timer),根据预先设置的用于表示每秒播放帧数的帧率以及用于表示整个动画播放的帧数,对图层中的遮罩位图进行跨图层渲染逻辑以形成播放动画帧,从而实现各种切屏特效。
图1为本发明实施例实现切屏特效的方法流程示意图。参见图1,该流程包括:
步骤101,预先设置切屏特效类型对应的切屏特效对象模板信息;
本步骤中,切屏特效类型包括:淡入淡出、百叶窗、翻页、翻转、棋盘等,相对应地,切屏特效对象模板包括:淡入淡出模板、百叶窗模板、翻页模板、翻转模板以及棋盘模板。
切屏特效对象模板信息由位图图像信息、位图遮罩信息以及位图布局信息组成。
位图图像信息包括:当前图层位图图像信息以及切屏后图层位图图像信息,其中,当前图层位图图像信息为切屏前屏幕包含的位图图像信息,切屏后图层位图图像信息为切屏后屏幕包含的位图图像信息,需要在后续流程中获取。
位图遮罩信息为对切屏特效对象模板进行遮罩处理所需的信息,例如,通过设置切屏特效对象模板颜色,举例来说,设置为黑、白两部分颜色,切屏特效对象模板的黑色部分,可以将该位置对应的切屏后图层位图图像作透明处理以显示切屏后图层位图图像并遮挡住相应位置的当前图层位图图像,其白色部分,显示当前图层位图图像并遮挡住相应位置的切屏后图层位图图像。关于图像的遮罩处理,具体可参见相关技术文献,在此不再赘述。
实际应用中,可将切屏特效对象模板中黑颜色部分的像素值设置为oxFFFFFFFF,将切屏特效对象模板中白颜色部分的像素值设置为ox00000000,后续中可根据该区域的像素值进行相应的遮罩处理。
位图布局信息包含:切屏特效对象模板的平移值信息、缩放值信息、旋转值信息等,可以根据实际需要预先设置。这样,可以通过设置不同的位图布局信息,从而实现不同的动画效果,例如旋转、移动、缩放等。实际应用中,为了使整型运算加快速度,本发明实施例中,设置支持256级的缩放,即缩放值等于256时表示1∶1(不缩不放),小于256时表示缩小,大于256表示放大。
位图布局信息可以以矩阵形式存在,平移值、旋转值、缩放值作为矩阵的三个度量值,也就是说,可以进行平移、旋转、缩放中的一种或任意组合切屏变换,每种切屏变换都对应一次矩阵运算,其计算公式分别为:
式中,
Di为第i帧的平移值,i为自然数;
Fi为图层的第i帧;
Fn为图层的总帧数,i<Fn。
φ=2ξcos(π-2α)
式中,
φ为旋转值;
ξ为图层镜像翻转系数,可以预先设定;
α为翻转角度。
β=wxζ>>l
式中,
β为缩放值;
w为图层帧宽,即设置的播放屏幕的宽度;
ζ为图层缩放粒度,可以预先设定;
>>为移位操作;
l为缩放级信息,本发明实施例中,采用256级缩放,则l=8。
步骤102,获取当前图层位图图像信息以及切屏后图层位图图像信息,并存储至切屏特效对象模板;
本步骤中,如果切屏特效对象模板中存储有位图图像信息,则用获取的位图图像信息更新存储的位图图像信息。
对于当前屏幕,可以直接通过抓图软件以及图像识别软件获取该当前屏幕对应的位图图像信息,也可以直接通过调用操作系统底层接口获取,对于切屏后的屏幕,可以根据用户输入的获取切屏后屏幕的指令,通过解析用户指令,调用相应函数从后台获取用户指令对应的屏幕中的位图图像信息。例如,用户需要在从当前的百度搜索界面切换到谷歌搜索界面的过程中进行动画显示,则可以通过抓图软件以及图像识别软件获取百度搜索界面中包含的位图图像信息,然后,根据用户输入的谷歌,后台对谷歌进行解析,获取谷歌对应的统一资源定位器地址,并以后台的方式,获取谷歌搜索屏幕中的位图图像信息。
步骤103,根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;
本步骤中,切屏特效播放参数包括:切屏特效播放帧率以及播放帧数,切屏特效播放帧率表示以多快的速率播放图像帧,播放帧数表示从当前屏幕切换至切屏后屏幕中需要播放的总帧数,例如,设置每秒播放25帧,播放帧数为25。当然,实际应用中,切屏特效播放参数也可以是切屏特效播放帧率及播放时间,或者,播放帧数及播放时间。
切屏特效对象模板根据设置的播放帧数生成对应的位图遮罩子模板,例如,播放帧数为25,切屏特效类型为百叶窗,则百叶窗模板包含25个位图遮罩子模板,每一位图遮罩子模板对应一帧图像,用于对当前图层位图图像以及切屏后图层位图图像进行遮罩处理。
根据预先设置的位图遮罩策略设置位图遮罩子模板中的位图遮罩区域,确定位图遮罩区域映射的当前图层位图图像以及切屏后图层位图图像,位图遮罩策略可根据切屏特效类型并结合现有相关技术手段实现。也就是说,根据预先设置的位图遮罩策略可以确定该位图遮罩子模板中哪些区域需要显示当前图层位图图像而遮罩相应区域的切屏后图层位图图像,哪些区域需要显示切屏后图层位图图像而遮罩相应区域的当前图层位图图像,即对当前图层位图图像以及切屏后图层位图图像进行遮罩处理,并通过区域中的颜色值进行映射。
实际应用中,也可以在获取切屏前后屏幕包含的位图数据信息后,初始化两个图层信息,获取当前屏幕以及切屏后屏幕的宽、高尺寸用以确定后续的缩放及平移系数,即分别在位图遮罩子模板中创建两个图层中包含的位图以及对应的遮罩位图,将当前屏幕的所有子孙控件绘制到当前的位图层中,将切屏后屏幕显示的内容截屏并保存到切屏后图层的位图中。
步骤104,根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放。
本步骤中,在接收到切屏指令后,根据切屏特效对象模板信息中的位图遮罩信息对切屏特效对象模板中的位图遮罩子模板进行遮罩处理,然后,根据存储的位图布局信息对遮罩处理的位图遮罩子模板进行变换生成待播放图像帧,按照预先设置的播放帧率进行播放。
在切屏特效播放过程中,为了不影响主程序逻辑,可以将键盘输入进行屏蔽,在切屏特效播放完成后再触发开启按键响应。
切屏特效的播放模式包括独占模式以及中断模式,其中,独占模式即播放程序主线程进入一个循环,根据预先设置的帧率和帧数不断刷新屏幕,直到播放结束;中断模式采用单独一个计时器线程对时间计数,并根据预先设置的帧率和帧数,每隔设定的时间,向播放程序主线程发送通知,播放程序主线程接到通知后刷新屏幕。本发明实施例中,结合操作系统平台和程序框架的兼容考虑,采用了中断模式进行切屏特效播放。
如前所述,在初始化两个图层信息后,可以将创建好的图层插入到动画播放队列中,动画播放引擎轮询动画播放队列并绘制相应动画,即根据系统操作平台调用的切屏特效类型参数结合预先设置的切屏特效对象模板,创建动画播放队列中具体的切屏特效对象。具体为:首先根据系统操作平台传输的枚举值从预先存储的枚举值与切屏特效类型的映射关系中获取该传输的枚举值对应的切屏特效类型,枚举值为用户输入的用于表示切屏特效类型的值,其计算公式为:
(CEffectEngine::EEffectType)%(CEffectEngine::EMaskLast)
式中,
CEffectEngine为命名空间;
EEffectType代表系统操作平台传入的效果类型;
EMaskLast代表切屏特效引擎能提供的效果类型总数;
%表示取余。
在获取切屏特效类型后,再调用预先设置的对应切屏特效类型的构造函数实例化切屏效果对象,即进行位图遮罩处理,不同的切屏效果对应不同的构造函数。
然后将生成的切屏特效对象作为成员对象加入到图层对象的数据结构中;
紧接着通过启动动画播放引擎的播放接口,循环地对前后两个图层的位图进行绘制,绘制顺序先是顶层图层及其遮罩图层,紧接着是底层图层及其遮罩图层,遮罩位图的形状是由切屏特效类型决定,例如,用户需要产生百叶窗的遮罩效果,则在遮罩位图上绘制多个黑白相间的矩形,绘制图层时,遇到0xFFFFFFFF相素点就绘制切屏后图层的图像数据,遇到0x00000000就绘制当前图层数据,矩形的大小及间隔由程序控制,也可通过伪随机算法产生,然后定时器时钟会定时的对矩形区域进行缩放,从而对下一个图层产生百叶窗效果。
在每一次渲染输出之前,根据位图布局信息矩阵对绘制的图层作一次全局运算,位图布局信息矩阵为图层的位图数据布局信息,由一个二维数组表示,进行矩阵运算的参数包括:平移值、旋转值、缩放值,每个参数的计算方式如前所述,在此不再赘述,以对图片偏移量和遮罩图进行运算后进行播放,并可以通过外部的外部调用接口,动态输入帧率参数,利用帧率来调节切屏动画播放速度,这样便能够很方便地实现动画播放速度的变化。
以下以以实现翻页切屏效果,即在显示新图层(切屏后图层)图像之前,将旧图层(当前图层)图像翻开一页书的方式进行消除为例,对本发明实施例的实现切屏特效的方法进行具体描述。
图2为本发明实施例实现翻页切屏效果的流程示意图。参见图2,该流程包括:
步骤201,将旧图层等分成相等间隔的矩形区域;
本步骤中,获取当前屏幕位图图像信息,将旧图层(当前图层)区域分成等宽块计算,以便于在位图布局信息矩阵计算时同时运算奇偶数行/列,以便减少位图布局信息矩阵的循环扫描次数,提高运行效率。实际应用中,间距与刷屏帧数相关,如果刷屏帧数要求较高,可以将矩形区域条形宽度设大些,反之,则可以设置小些。
本步骤中,涉及到的位图布局信息矩阵运算参数表示如下:
式中,
x为当前帧所占显示屏幕的宽度,w为图层帧宽,即设置的播放屏幕的宽度,等于图层位图每行的像素点个数。
φ=2ξcos(π-2α)。
步骤202,在旧图层上绘制不规则的多边形;
本步骤中,以遮罩区域为多边形为例,在旧图层上绘制不规则的多边形是为了形成一个不规则多边形的遮罩区域,以便在后续绘制时,当绘制多边形区域内的图层数据时,将当前图层数据忽略,即跳过不作处理,直接绘制切屏后图层位图数据。多边形区域内的颜色代表遮罩图层的颜色,假设遮罩图层的颜色为0xFFFFFFFF,则在绘制时,遮罩区域透过当前图层而显出切屏后图层。
步骤203,进行翻页切屏处理;
本步骤中,获取切屏后图层的位图图像信息,按照预先设置的策略,将切屏后图层的图像镜像翻转后再旋转2α,以将位图布局信息矩阵的镜像数据按照2α的翻转系数进行翻转运算,以便形成一帧绘制位图。即将一张图片镜像翻转存到另一张图片中,以备后续绘制所用。
步骤204,绘制切屏后图层;
本步骤中,动画播放引擎绘制切屏后新的图层,新图层只需全屏刷新到屏幕上。
步骤205,绘制旧图层;
本步骤中,动画播放引擎绘制旧图层,由于旧图层有遮罩,因此,颜色为0xFFFFFFFF的区域不会显示,而直接透视到切屏后图层。
步骤206,返回执行步骤201。
本步骤中,再回到第一步,不断缩小矩形区域宽度进行绘制,根据帧率以及帧数,每间隔一定时间改变一次矩形区域宽度以实现连续的翻页切屏效果。
图3为本发明实施例基于图1和图2添加切屏特效对象的时序流程示意图。参见图3,该流程包括:
步骤301,系统操作平台用户输入切屏效果类型参数;
步骤302,切屏特效引擎根据接收的切屏效果类型参数创建用于切屏效果的两个图层;
步骤303,切屏特效引擎根据接收的切屏效果类型参数创建切屏特效对象;
步骤302和步骤303为切屏特效引擎初始化两个图层的位图数据信息,也就是创建两个图层的位图及其遮罩图层,在两个图层的位图数据中,分别保存当前屏幕位图数据以及切屏后图层的位图数据。
步骤304,切屏特效引擎将创建好的两个图层输出至动画播放器的动画播放队列中;
步骤305,动画播放器监听用户按键事件,并从刷屏定时器(Timer)中读取定时器队列中的播放任务列表(通过DoTick实现);
步骤306,动画播放器根据播放任务列表,从动画播放队列中读取相应图层图像信息,进行渲染;
步骤307,动画播放器播放动画,并重复执行渲染,直到定时器的时间片消耗完毕,结束播放;
步骤305至步骤307中,动画播放器单独占用一个线程,周期性地监听用户按键事件并读取Timer队列中的播放任务列表,负责播放、渲染、停止两个图层的位图和遮罩数据,每执行一次播放动作,就会动态地对图层数据进行一次位图布局信息矩阵运算,将计算后的图层数据重新写入到闪存的缓冲区中,并执行刷屏动作更新屏幕,整个过程不断重复执行,直到时间片消耗完毕,结束播放。
步骤308,动画播放器释放图层资源。
图4为本发明实施例实现切屏特效的装置结构示意图。参见图4,该装置包括:切屏特效引擎以及动画播放引擎,其中,
切屏特效引擎,用于存储预先设置的切屏特效类型对应的切屏特效对象模板信息,获取当前图层位图图像信息以及切屏后图层位图图像信息,根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;
动画播放引擎,用于从切屏特效引擎读取切屏特效对象模板信息,生成待播放图像帧并进行播放。
本发明实施例中,动画的播放可以由动画播放引擎中一个独立的类CAnimationPlayer实现。
图5为本发明实施例切屏特效引擎与切屏特效对象的类图关系结构示意图。参见图5,以类的方式进行说明,切屏特效引擎与切屏特效对象的关系是一对多的关系,当有新的切屏特效对象生成时,只需根据切屏特效类型(effectType)字段,在切屏特效引擎中产生对应的子结点,例如,淡入特效(CEffectFadeIn)子结点、滑入左2右特效(CEffectSlideInLeft2Right)子结点、百叶窗特效(CEffectShutter)子结点以及滑入底2顶特效(CEffectSlideInBottom2Top)子结点等,每一子节点包括切屏特效类型(effectType)字段:整数型(int)以及切屏特效帧(+EffectFrame)。动画播放引擎维持一个定时器来定期调用每个切屏特效对象对应的切屏特效帧(EffceFrame)方法。
在切屏动画中,每一切屏特效帧的图层包含当前层的位图、当前层的位图遮罩以及当前图层的位图布局信息矩阵三个要素。
在特效渲染(Render)输出时,分别绘制当前图层以及切屏后图层上的位图数据,同时,根据位图遮罩和绘制平移值的不同,显示出相应的切屏效果。
图6为本发明实现切屏特效的装置框架结构示意图。参见图6,该装置主要由切屏特效引擎(Effect Engine)和动画播放引擎(Effect Player)两个模块构成。本发明实施例中,上层(操作系统平台)应用通过调用动画播放引擎的播放接口,触发切屏特效引擎执行切屏过程,从而使得上层不需要关注底层过多的实现细节,实现了用户接口(UI)与逻辑相分离,减化了耦合度。切屏特效引擎负责管理切屏特效对象的生命周期,例如,管理图中淡入特效(CEffectFadeIn)以及淡出特效(CeffectFadeOut)两个切屏特效对象的生命周期,当两个切屏特效对象创建后,将其加入到动画播放队列中,最后,动画播放定时器(Draw Timer)周期性地调用每个切屏特效对象的播放方法,将经过位图布局信息矩阵运算的图层的位图数据绘制到屏幕上。
由上述可见,本发明实施例的实现切屏特效的方法及装置,预先设置切屏特效类型对应的切屏特效对象模板信息;获取当前图层位图图像信息以及切屏后图层位图图像信息,并存储至切屏特效对象模板;根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息;根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放。这样,通过切屏特效引擎来控制当前图层以及切屏后图层绘制的方式有较好的代码移植性,可以很好应在各个平台上,而无须对代码做过多修改,动画衔接流畅、切屏特效效果强,提高了用户体验。同时,可以在任意手机程序中实现屏幕切换的过渡特效,具有很好的跨平台性,切屏特效引擎与操作系统平台、程序框架完全独立,切屏特效引擎的执行流程与程序逻辑相对独立,大大降低了跨平台移植成本。而且,不需调用操作系统平台相关的算法和接口,通过自身的特效运算和迭加算法,从而实现了与具体操作系统平台的解耦,与具体程序框架耦合度低,调用简单,效率更高。此外,只需要在调用切屏特效引擎时创建切屏特效对象,然后设置切屏特效类型,再启动绘制调用接口便能立即触发切屏特效播放,用较小的代价实现了产品较好的切屏效果
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种实现切屏特效的方法,其特征在于,该方法包括:
预先设置切屏特效类型对应的切屏特效对象模板信息;
获取当前图层位图图像信息以及切屏后图层位图图像信息,并存储至切屏特效对象模板;
根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息,具体包括:获取切屏前后屏幕包含的位图数据信息;分别在位图遮罩子模板中创建当前图层和切屏后图层中包含的位图以及对应的遮罩位图,将当前屏幕的所有子孙控件绘制到当前的位图层中,将切屏后屏幕显示的内容截屏并保存到切屏后图层的位图中;
根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放。
2.如权利要求1所述的方法,其特征在于,所述获取当前图层位图图像信息以及切屏后图层位图图像信息具体包括:
通过抓图软件以及图像识别软件获取当前屏幕对应的位图图像信息;
根据用户输入的获取切屏后屏幕的指令,通过解析用户指令,调用相应函数从后台获取用户指令对应的切屏后屏幕中的位图图像信息。
3.如权利要求1所述的方法,其特征在于,所述根据预先设置的切屏特效播放参数以及获取的当前图层以及切屏后图层位图图像信息更新切屏特效对象模板中的位图遮罩信息具体包括:
切屏特效对象模板根据设置的播放帧数生成对应的位图遮罩子模板,每一位图遮罩子模板对应一帧图像,用于对当前图层位图图像以及切屏后图层位图图像进行遮罩处理;
根据预先设置的位图遮罩策略设置位图遮罩子模板中的位图遮罩区域,确定位图遮罩区域映射的当前图层位图图像以及切屏后图层位图图像。
4.如权利要求1所述的方法,其特征在于,所述根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放具体包括:
接收切屏指令,根据切屏特效对象模板信息中的位图遮罩信息对切屏特效对象模板中的位图遮罩子模板进行遮罩处理;
根据存储的位图布局信息对遮罩处理的位图遮罩子模板进行变换生成待播放图像帧,按照预先设置的播放帧率进行播放。
5.如权利要求1所述的方法,其特征在于,所述根据读取的切屏特效对象模板信息生成待播放图像帧并进行播放具体包括:
将创建好的当前图层和切屏后图层插入到动画播放队列中;
根据接收的枚举值从预先存储的枚举值与切屏特效类型的映射关系中获取该接收的枚举值对应的切屏特效类型;其中枚举值为用户输入的用于表示切屏特效类型的值;
调用预先设置的对应切屏特效类型的构造函数构造动画播放队列中的图层,形成实例化切屏特效对象;
将生成的切屏特效对象作为成员对象加入到图层对象的数据结构中;
启动动画播放引擎的播放接口,循环地对数据结构中的前后两个图层的位图进行绘制;
根据位图布局信息矩阵对绘制的图层进行运算;
根据动态输入的帧率参数调节切屏动画播放速度。
6.如权利要求1至5任一项所述的方法,其特征在于,所述切屏特效类型包括:淡入淡出、百叶窗、翻页、翻转以及棋盘。
7.如权利要求6所述的方法,其特征在于,所述切屏特效对象模板信息包括:位图图像信息、位图遮罩信息以及位图布局信息。
8.如权利要求7所述的方法,其特征在于,所述位图图像信息包括:当前图层位图图像信息以及切屏后图层位图图像信息。
9.如权利要求7所述的方法,其特征在于,所述位图布局信息包含:切屏特效对象模板的平移值信息、缩放值信息以及旋转值信息。
10.如权利要求1所述的方法,其特征在于,所述切屏特效播放参数包括:切屏特效播放帧率以及播放帧数、切屏特效播放帧率及播放时间、或者,播放帧数及播放时间。
11.如权利要求6所述的方法,其特征在于,采用独占模式或中断模式进行播放。
12.一种实现切屏特效的装置,其特征在于,该装置包括:切屏特效引擎以及动画播放引擎,其中,
切屏特效引擎,用于存储预先设置的切屏特效类型对应的切屏特效对象模板信息;获取切屏前后屏幕包含的位图数据信息;分别在位图遮罩子模板中创建当前图层和切屏后图层中包含的位图以及对应的遮罩位图,将当前屏幕的所有子孙控件绘制到当前的位图层中,将切屏后屏幕显示的内容截屏并保存到切屏后图层的位图中;
动画播放引擎,用于从切屏特效引擎读取切屏特效对象模板信息,生成待播放图像帧并进行播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010584964.7A CN102541515B (zh) | 2010-12-08 | 2010-12-08 | 一种实现切屏特效的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010584964.7A CN102541515B (zh) | 2010-12-08 | 2010-12-08 | 一种实现切屏特效的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102541515A CN102541515A (zh) | 2012-07-04 |
CN102541515B true CN102541515B (zh) | 2014-12-03 |
Family
ID=46348494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010584964.7A Active CN102541515B (zh) | 2010-12-08 | 2010-12-08 | 一种实现切屏特效的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102541515B (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541515B (zh) * | 2010-12-08 | 2014-12-03 | 腾讯科技(深圳)有限公司 | 一种实现切屏特效的方法及装置 |
DE112012007137T5 (de) * | 2012-11-15 | 2015-08-06 | Mitsubishi Electric Corporation | Anwenderschnittstellenvorrichtung |
CN103020124B (zh) * | 2012-11-16 | 2017-10-10 | 北京奇虎科技有限公司 | 显示页面的方法和装置 |
CN102981710A (zh) * | 2012-11-16 | 2013-03-20 | 北京奇虎科技有限公司 | 页面变换的方法和装置 |
CN103034683B (zh) * | 2012-11-26 | 2016-12-21 | 北京奇虎科技有限公司 | 用于浏览器的页面切换方法和装置 |
CN103853438B (zh) * | 2012-11-29 | 2018-01-26 | 腾讯科技(深圳)有限公司 | 图集图片切换方法及浏览器 |
TWD161261S (zh) * | 2013-01-07 | 2014-06-21 | 宏碁股份有限公司 | 顯示螢幕之圖形化使用者介面 |
CN103530030B (zh) * | 2013-03-18 | 2017-02-15 | Tcl集团股份有限公司 | 一种页面切换系统、方法及窗帘特效页面切换方法 |
CN104166512A (zh) * | 2013-05-16 | 2014-11-26 | 百度在线网络技术(北京)有限公司 | 触摸屏终端的对象切换处理方法及装置 |
CN103309810B (zh) * | 2013-06-21 | 2016-08-10 | 百度在线网络技术(北京)有限公司 | 应用程序的帧率检测方法和装置 |
CN103543923B (zh) * | 2013-07-23 | 2017-08-08 | Tcl集团股份有限公司 | 控件的点击事件处理方法及系统 |
CN104639725B (zh) * | 2013-11-08 | 2017-12-15 | 腾讯科技(深圳)有限公司 | 界面切换方法及装置 |
CN105100862B (zh) * | 2014-04-18 | 2018-04-24 | 阿里巴巴集团控股有限公司 | 网格移动的显示处理方法及其系统 |
CN105488835B (zh) * | 2014-09-15 | 2018-04-06 | Tcl集团股份有限公司 | 一种基于纹理空间gpu加速的圆形切屏方法及其系统 |
CN104571824A (zh) * | 2015-01-20 | 2015-04-29 | 联想(北京)有限公司 | 一种电子设备及其控制器及控制方法 |
CN104932853B (zh) * | 2015-05-25 | 2018-05-08 | 深圳市明日空间信息技术有限公司 | 动态表情播放方法及装置 |
CN104991695B (zh) * | 2015-06-15 | 2019-07-26 | 联想(北京)有限公司 | 一种信息处理方法及电子设备 |
CN105278839A (zh) * | 2015-09-30 | 2016-01-27 | 天脉聚源(北京)科技有限公司 | 动态切换图片的方法和装置 |
CN105138213A (zh) * | 2015-09-30 | 2015-12-09 | 天脉聚源(北京)科技有限公司 | 动态切换图片的方法和装置 |
CN105138214A (zh) * | 2015-09-30 | 2015-12-09 | 天脉聚源(北京)科技有限公司 | 动态切换图片的方法和装置 |
CN105491452B (zh) * | 2015-11-25 | 2019-02-15 | 浙江宇视科技有限公司 | 一种多视频窗口层级切换方法及装置 |
CN105630510A (zh) * | 2016-02-04 | 2016-06-01 | 腾讯科技(深圳)有限公司 | 应用页面的动画处理方法和装置 |
CN105933620A (zh) * | 2016-04-21 | 2016-09-07 | 深圳市创凯智能股份有限公司 | 视频信号切换方法及设备 |
CN106558032A (zh) * | 2016-11-28 | 2017-04-05 | 武汉斗鱼网络科技有限公司 | 一种应用窗体的高斯模糊方法和装置 |
CN107291414A (zh) * | 2017-07-05 | 2017-10-24 | 珠海市乐霸电子科技有限公司 | 一种巨幕动态分屏显示方法及点歌终端 |
CN110020336B (zh) * | 2017-08-01 | 2021-07-30 | 北京国双科技有限公司 | 遮罩层控制方法及装置 |
CN109426532B (zh) * | 2017-08-22 | 2021-08-20 | 腾讯科技(深圳)有限公司 | 安卓系统中衔接页面的方法、装置及电子设备 |
CN107895394B (zh) * | 2017-11-17 | 2021-03-30 | 中国平安财产保险股份有限公司 | 动画特效实现方法、装置、终端设备及存储介质 |
CN108519865B (zh) * | 2018-03-09 | 2021-04-09 | 瑞芯微电子股份有限公司 | 源切换显示方法、存储介质及系统 |
CN108769642A (zh) * | 2018-03-27 | 2018-11-06 | 深圳负空间科技有限公司 | 基于云端的动态照片渲染及裸眼vr交互方法 |
CN109413232B (zh) * | 2018-10-19 | 2021-01-01 | 北京小米移动软件有限公司 | 屏幕显示方法及装置 |
CN110007831B (zh) * | 2019-03-29 | 2021-01-29 | 珠海豹好玩科技有限公司 | 一种翻页控制方法、装置及终端设备 |
CN110069313B (zh) * | 2019-04-29 | 2022-04-29 | 珠海豹好玩科技有限公司 | 图像切换方法、装置、电子设备及存储介质 |
CN110769120A (zh) * | 2019-10-22 | 2020-02-07 | 广州华多网络科技有限公司 | 进行消息提醒的方法、装置、设备及存储介质 |
CN111970527B (zh) * | 2020-08-18 | 2022-03-29 | 广州虎牙科技有限公司 | 直播数据处理方法及装置 |
CN112882637B (zh) * | 2021-02-23 | 2022-07-29 | 上海哔哩哔哩科技有限公司 | 多图层动画展示的交互方法及浏览器 |
CN114020198B (zh) * | 2021-09-30 | 2023-01-17 | 荣耀终端有限公司 | 显示方法及电子设备 |
CN117149320A (zh) * | 2022-08-09 | 2023-12-01 | 惠州Tcl移动通信有限公司 | 界面显示方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753701A (zh) * | 2008-12-15 | 2010-06-23 | 康佳集团股份有限公司 | 一种移动终端菜单显示方法、装置及移动终端 |
CN101895634A (zh) * | 2010-07-15 | 2010-11-24 | 中兴通讯股份有限公司 | 一种实现移动终端界面动态切换的方法和装置 |
CN102541515A (zh) * | 2010-12-08 | 2012-07-04 | 腾讯科技(深圳)有限公司 | 一种实现切屏特效的方法及装置 |
-
2010
- 2010-12-08 CN CN201010584964.7A patent/CN102541515B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753701A (zh) * | 2008-12-15 | 2010-06-23 | 康佳集团股份有限公司 | 一种移动终端菜单显示方法、装置及移动终端 |
CN101895634A (zh) * | 2010-07-15 | 2010-11-24 | 中兴通讯股份有限公司 | 一种实现移动终端界面动态切换的方法和装置 |
CN102541515A (zh) * | 2010-12-08 | 2012-07-04 | 腾讯科技(深圳)有限公司 | 一种实现切屏特效的方法及装置 |
Non-Patent Citations (2)
Title |
---|
周含等.基于JAVA线程的遮罩动画生成技术.《微电子学与计算机》.2006,第23卷(第2期), * |
基于JAVA线程的遮罩动画生成技术;周含等;《微电子学与计算机》;20060228;第23卷(第2期);正文第2部分 * |
Also Published As
Publication number | Publication date |
---|---|
CN102541515A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102541515B (zh) | 一种实现切屏特效的方法及装置 | |
CN101421761B (zh) | 视件和场景图接口 | |
US7428542B1 (en) | Method and system for combining nodes into a mega-node | |
CN103562862B (zh) | 全局合成系统 | |
RU2018118194A (ru) | Способ записи, редактирования и воссоздания компьютерного сеанса | |
JP4005623B2 (ja) | ウィンドウ表示システム、ウィンドウ表示方法、プログラム開発支援装置及びサーバ装置 | |
CN102073502B (zh) | 一种利用web原生布局进行页面渲染的方法及装置 | |
US20170371844A1 (en) | Method, device and terminal for implementing regional screen capture | |
CN106095437B (zh) | 用户界面从右到左rtl的布局方式的实现方法及装置 | |
US20080049015A1 (en) | System for development of 3D content used in embedded devices | |
CN103827924B (zh) | 信息处理装置、信息处理方法 | |
CN103827957B (zh) | 图像处理装置、图像处理方法和图像文件的数据结构 | |
CN106062705A (zh) | 跨平台渲染引擎 | |
CN105096368B (zh) | 三维对象处理方法和相关装置 | |
CN101374213A (zh) | 电视人机界面自定义的实现方法 | |
CN113411664B (zh) | 基于子应用的视频处理方法、装置和计算机设备 | |
CN109636885B (zh) | 一种用于h5页面的序列帧动画制作方法和系统 | |
CN106131643A (zh) | 一种弹幕处理方法、处理装置及其电子设备 | |
JP2008102947A (ja) | ウィンドウ表示システム、情報処理システム、クライアント装置、電話機、情報機器、家電機器及び機器 | |
CN107636654A (zh) | 通过生成指令列表将flash内容转换为html内容 | |
EP2463762B1 (en) | Information processing device, information processing method, and data structure for content files | |
CN105468573A (zh) | 可配置式图表应用系统 | |
CN103049430A (zh) | 一种基于idf格式文件的页面显示方法 | |
CN1987930A (zh) | 一种在移动通讯终端显示装置中显示动画的方法 | |
CN105100862A (zh) | 网格移动的显示处理方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |