《界面切换方法及系统.pdf》由会员分享,可在线阅读,更多相关《界面切换方法及系统.pdf(16页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103176689 A (43)申请公布日 2013.06.26 CN 103176689 A *CN103176689A* (21)申请号 201110442425.4 (22)申请日 2011.12.26 G06F 3/0481(2013.01) G06F 3/0484(2013.01) (71)申请人 腾讯科技 (深圳) 有限公司 地址 518044 广东省深圳市福田区振兴路赛 格科技园 2 栋东 403 室 (72)发明人 彭勇 张晏兵 (74)专利代理机构 广州华进联合专利商标代理 有限公司 44224 代理人 何平 曾旻辉 (54) 发明名称 界面切换方法。
2、及系统 (57) 摘要 一种界面切换方法, 具体包括以下步骤 : 接收 界面切换的指令 ; 对切换前的实际界面和切换后 的实际界面中的至少一者进行截图 ; 以所述截图 作为临时界面执行切换动画 ; 显示切换后的实际 界面。 上述界面切换方法通过对界面进行截图后, 在两个界面之间进行切换的时候, 采用截图技术 实现伪桌面的切换, 切换过程中不需要对切换过 程中原界面上的每个元素进行绘制, 只需要绘制 截图, 从而可以减少计算量, 提高界面切换的流畅 度, 给用户提供了较好的操作体验。此外, 还提供 了一种界面切换系统。 (51)Int.Cl. 权利要求书 2 页 说明书 8 页 附图 5 页 (。
3、19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书8页 附图5页 (10)申请公布号 CN 103176689 A CN 103176689 A *CN103176689A* 1/2 页 2 1. 一种界面切换方法, 其特征在于, 具体包括以下步骤 : 接收界面切换的指令 ; 对切换前的实际界面和切换后的实际界面中的至少一者进行截图 ; 以所述截图作为临时界面执行切换动画 ; 显示切换后的实际界面。 2. 根据权利要求 1 所述的界面切换方法, 其特征在于, 在所述接收界面切换的指令的 步骤之后还包括, 判断所述界面切换是否为应用平台桌面与系统桌面间切换的步骤 ;。
4、 若是应用平台桌面与系统桌面间的切换, 则只对切换前的实际界面和切换后的实际界 面中的系统桌面截图 ; 若是应用平台桌面之间的切换, 则对所述应用平台桌面的切换前的实际界面和切换后 的实际界面都进行截图。 3. 根据权利要求 2 所述的界面切换方法, 其特征在于, 在对切换前的实际界面和切换 后的实际界面中的至少一者进行截图时, 将所述切换前的实际界面和切换后的实际界面的 坐标定位为屏幕范围内的坐标后进行截图。 4.根据权利要求1或2所述的界面切换方法, 其特征在于, 所述对切换前的实际界面和 切换后的实际界面中的至少一者进行截图的步骤包括 : 将所述截图分别存储为相应图像 ; 隐藏所述被截图。
5、的切换前的实际界面和 / 或切换后的实际界面。 5. 根据权利要求 1 所述的界面切换方法, 其特征在于, 在显示切换后的实际界面的步 骤之前还包括将所述临时界面隐藏的步骤。 6.根据权利要求1或5所述的界面切换方法, 其特征在于, 在显示切换后的实际界面的 步骤之后还包括将所述将临时界面销毁的步骤。 7. 根据权利要求 1 所述的界面切换方法, 其特征在于, 若所述界面切换为应用平台桌 面与系统桌面间切换, 则只对切换前的实际界面或切换后的实际界面中的系统桌面截图 ; 所述以所述截图作为临时界面执行切换动画的步骤包括 : 以所述截图作为界面切换的背景 ; 将所述背景作为临时界面执行切换动画。。
6、 8. 根据权利要求 1 所述的界面切换方法, 其特征在于, 所述执行切换动画具体包括以 下步骤 : A, 设置当前要切换的当前帧为切换动画的起始帧 ; B, 获取当前时间, 执行当前帧动画 ; C, 获取当前时间, 判断是否到达执行完当前帧的时间, 若否, 则继续执行步骤 B ; 若是, 则将下一帧作为当前帧 ; E, 判断被执行动画帧数是否等于切换动画的总帧数 N, 若否, 则转至步骤 B ; 若是, 则切 换动画结束。 9.根据权利要求8所述的界面切换方法, 其特征在于, 所述步骤B和C中通过获得机器 内部计时器的时钟频率和计数来确定当前时间。 10. 根据权利要求 1 或 8 所述的界。
7、面切换方法, 其特征在于, 应用平台接收到界面切换 的切换动画指令后直到切换动画动作完成期间只执行切换动画的命令而不作其他任何操 权 利 要 求 书 CN 103176689 A 2 2/2 页 3 作。 11. 一种界面切换系统, 其特征在于, 包括 : 输入模块, 用于接收界面切换的指令 ; 截图模块, 对切换前的实际界面和切换后的实际界面中的至少一者进行截图 ; 切换模块, 以所述截图作为临时界面执行切换动画 ; 显示模块, 显示切换后的实际界面。 12. 根据权利要求 11 所述的界面切换系统, 其特征在于, 还包括用于判断所述界面切 换是否为应用平台桌面与系统桌面间切换的判断模块, 。
8、若是, 则所述判断模块控制所述截 图模块只对切换前的实际界面和切换后的实际界面中的系统桌面截图 ; 若否, 则所述判断 模块控制所述截图模块对所述应用平台桌面的切换前的实际界面和切换后的实际界面都 进行截图。 13. 根据权利要求 11 所述的界面切换系统, 其特征在于, 所述切换模块包括 : 设置单元, 用于设置当前要切换的当前帧为切换动画的起始帧 ; 时间获取单元, 用于获取当前时间 ; 执行单元, 用于执行当前帧动画 ; 时间判断单元, 用于根据所述时间获取单元获取的当前时间, 判断是否到达执行完当 前帧的时间, 若否, 则控制执行单元继续执行当前帧动画 ; 若是, 则将下一帧作为当前帧。
9、 ; 帧数判断单元, 用于判断被执行动画帧数是否等于切换动画的总帧数 N, 若否, 则控制 执行单元继续执行当前帧动画 ; 若是, 则切换动画结束。 14. 根据权利要求 13 所述的界面切换系统, 其特征在于, 所述时间获取单元通过获得 机器内部计时器的时钟频率和计数来确定当前时间。 权 利 要 求 书 CN 103176689 A 3 1/8 页 4 界面切换方法及系统 【技术领域】 0001 本发明涉及计算机技术领域, 特别是涉及一种界面切换方法及系统。 【背景技术】 0002 开放是互联网发展的必然趋势, 基于即时通讯的开放平台也应用越来越广泛。开 放平台可以通过 AppStore( 。
10、应用市场 ) 接入大量的第三方应用, 用户可以根据需要安装自 己的应用。 0003 开放平台中的界面切换, 其实就是将界面从屏幕左边往右边或从右边往左边滑动 的过程, 传统的一些界面切换技术, 都是采用定时器来让屏幕滑动。 有时会让用户感觉到切 换不流畅的现象。主要有以下几点 : 0004 1、 由于是采用定时器来触发屏幕滑动, 有可能造成卡的现象。定时器是到了一定 时间就发出一个 WM_TIMER( 定时器消息 ) 消息到消息队列, 然后等待执行。如果在处理该 帧之前, 还在做其他复杂的事情, 界面切换的时候必定不流畅。 0005 2、 在切换的时候, 会在每一帧里调用 Update Win。
11、dow( 更新窗口 ) 让界面去刷新。 Update Window 属于阻塞式 API(Application Programming Interface, 应用程序编程接 口 ), 如果界面里含有大量元素需要绘制, 在界面绘制的过程中必定很耗时, 也会给用户带 来界面切换不畅的现象。 【发明内容】 0006 基于此, 针对界面切换的时候不流畅的问题, 有必要提供一种能使界面切换流畅 的界面切换方法。 0007 一种界面切换方法, 具体包括以下步骤 : 0008 接收界面切换的指令 ; 0009 对切换前的实际界面和切换后的实际界面中的至少一者进行截图 ; 0010 以所述截图作为临时界面执行。
12、切换动画 ; 0011 显示切换后的实际界面。 0012 此外, 针对界面切换的时候不流畅的问题, 有必要提供一种能使界面切换流畅的 界面切换系统。 0013 一种界面切换系统, 包括 : 0014 输入模块, 用于接收界面切换的指令 ; 0015 截图模块, 对切换前的实际界面和切换后的实际界面中的至少一者进行截图 ; 0016 切换模块, 以所述截图作为临时界面执行切换动画 ; 0017 显示模块, 显示切换后的实际界面。 0018 上述界面切换方法及系统通过对界面进行截图后, 在两个界面之间进行切换的时 候, 采用截图技术实现伪桌面的切换, 切换过程中不需要对切换过程中原界面上的每个元 。
13、素进行绘制, 只需要绘制截图, 从而可以减少计算量, 提高界面切换的流畅度, 给用户提供 说 明 书 CN 103176689 A 4 2/8 页 5 了较好的操作体验。 【附图说明】 0019 图 1 为界面切换方法流程图 ; 0020 图 2 为一具体示例的界面切换方法流程图 ; 0021 图 3 为一实施例中的截图步骤流程图 ; 0022 图 4 为一实施例中的执行切换动画流程图 ; 0023 图 5 为另一具体示例中的界面切换方法流程图。 【具体实施方式】 0024 为了使本发明的目的、 技术方案及优点更清楚明白, 以下结合附图及实施例, 对本 发明进一步详细说明。 应当理解, 此处所。
14、描述的具体实施例仅用以解释本发明, 并不用于限 定本发明。 0025 如图 1 所示, 一种界面切换方法, 包括以下步骤 : 0026 步骤S110, 接收界面切换的指令。 例如应用平台接收到用户通过键盘、 鼠标或触摸 屏输入的界面切换的指令。 0027 步骤 S120, 对切换前的实际界面和切换后的实际界面中的至少一者进行截图。接 收界面切换的指令后, 在进行切换前显示的当前界面为切换前的实际界面, 切换后显示的 界面为切换后的实际界面。对上述两者中的至少一者进行截图, 即既可以既对切换前的实 际界面和切换后的实际界面截图, 也可以只对切换前的实际界面截图, 还可以只对切换后 的实际界面截图。
15、。 0028 步骤S130, 以所述截图作为临时界面执行切换动画。 将获得的截图作为临时界面, 在运行动画的时候, 即在动画的帧与帧之间切换时, 用截图作为临时界面代替切换前的实 际界面和 / 或切换后的实际界面。 0029 步骤 S140, 显示切换后的实际界面。动画运行完毕后, 显示出切换后的实际界面, 完成界面切换过程。 0030 上述界面切换方法通过对界面进行截图后, 在两个界面之间进行切换的时候, 采 用截图技术实现伪桌面的切换, 切换过程中不需要对切换过程中原界面上的每个元素进行 绘制, 只需要绘制截图, 从而可以减少计算量, 提高界面切换的流畅度, 给用户提供了较好 的操作体验。。
16、 0031 下面结合更具体的示例对上述界面切换方法进行更详细的说明。 在描述具体实施 前, 先定义一些变量。 0032 1) 定义动画执行完的总帧数为 N, 当前帧为 curN。 0033 2) 将每一帧的步长存储在一个数组里, 定义为 StepN。 0034 3) 定义当前分辨率的宽度为 CX 像素, 高度为 CY 像素。 0035 4) 定义应用平台桌面的大小为 (cx, cy)。 0036 如图 2 所示, 一种界面切换方法, 本实施例中, 为应用平台桌面切换方案, 具体包 括以下步骤 : 0037 步骤 S210, 接收界面切换的指令。应用平台接收到用户输入的界面切换的指令。 说 明 。
17、书 CN 103176689 A 5 3/8 页 6 0038 步骤 S220, 判断所述界面切换是否为在应用平台桌面与系统桌面间切换。本实施 例中, 判断为否, 用户输入的界面切换指令为应用平台自身的界面切换, 即应用平台桌面的 切换指令。 0039 步骤 S230, 对切换前的实际界面和切换后的实际界面中的至少一者进行截图。在 步骤 S220 判断为否时, 即界面切换指令为应用平台自身的界面切换, 则对应用平台桌面的 切换前的实际界面和切换后的实际界面都进行截图, 优选的, 即对屏幕当前显示的界面及 将要被切换进来的界面都进行截图。在其他实施例中, 可以是对应用平台桌面的预设部分 非全屏的。
18、界面进行截图。 0040 其中, 在切换前的实际界面和切换后的实际界面进行截图时, 在优选的实施例中, 所述切换前的实际界面和切换后的实际界面的坐标定位为屏幕范围内的坐标后进行截图, 具体为 : 应用平台桌面的宽度应该等于屏幕分辨率的宽度, 应用平台桌面的高度应该等于 屏幕分辨率的高度。也即 cx CX, cy CY。切换前, 切换前的实际界面的位置坐标为 (0, 0, cx, cy), 可以截图 ; 而由于切换后的实际界面在应用平台桌面的区域之外, 此时对切换后 的实际界面是截不到图的, 需要将切换后的实际界面的位置设为 (0, 0, cx, cy), 然后再截 图, 此时并不进行刷新, 因。
19、此, 即使将切换后的实际界面的位置设为 (0, 0, cx, cy), 也不会显 示出切换后的实际界面。 0041 在优选的实施例中, 参考图 3, 对界面截图具体包括步骤 S232 和步骤 S234 : 0042 步骤S232, 将截图分别存储为相应图像。 具体为, 将应用平台桌面的切换前的实际 界面和切换后的实际界面都进行截图后, 分别存储为切换前的实际界面图像和切换后的实 际界面图像。 0043 步骤S234, 隐藏被截图切换前的实际界面和切换后的实际界面。 具体为, 将切换前 的实际界面和切换后的实际界面隐藏, 将切换前的实际界面图像和切换后的实际界面图像 显示。 0044 步骤S24。
20、0, 以截图作为临时界面执行切换动画。 创建两个临时界面, 将切换前的实 际界面图像和切换后的实际界面图像分别作为切换前临时界面和切换后临时界面, 并做界 面切换, 让用户感觉是真的切换前的实际界面和切换后的实际界面在做切换。在优选的是 实施例中, 采用阻塞式动画技术对切换前临时界面和切换后临时界面进行桌面切换, 即应 用平台接收到界面切换的切换动画指令后直到切换动画动作完成期间只执行切换动画的 命令而不作其他任何操作。在每一帧里根据滑动位置与当前帧数的关系, 设置切换前临时 界面和切换后临时界面的位置。 0045 这里定义切换前临时界面的当前位置为 rcCurDesktop_cur ; 定义。
21、切换后临时界 面当前位置为 rcNewDesktop_cur。 0046 切换前临时界面和切换后临时界面的位置与当前帧数 ( 假设为 i) 的关系为 : 0047 rcCurDesktop_cur.left rcCurDesktop_cur.left+Stepi ; 0048 rcCurDesktop_cur.top rcCurDesktop_cur.top ; 0049 rcCurDesktop_cur.right rcCurDesktop_cur.left+cx ; 0050 rcCurDesktop_cur.bottom rcCurDesktop_cur.top+cy ; 0051 rc。
22、NewDesktop_cur.left rcNewDesktop_cur.left+Stepi ; 0052 rcNewDesktop_cur.top rcNewDesktop_cur.top ; 说 明 书 CN 103176689 A 6 4/8 页 7 0053 rcNewDesktop_cur.right rcNewDesktop_cur.left+cx ; 0054 rcNewDesktop_cur.bottom rcNewDesktop_cur.top+cy。 0055 由于是截图, 所以用户感觉就是真实的切换前的实际界面、 切换后的实际界面在 做切换。参考图 4, 执行切换动画具。
23、体包括以下步骤 : 0056 步骤 A, 设置当前要切换的当前帧为切换动画的起始帧。 0057 步骤 B, 获取当前时间, 执行当前帧动画。切换前临时界面和切换后临时界面开始 进行切换。 0058 步骤 C, 获取当前时间, 判断是否到达执行完当前帧的时间, 若否, 则继续执行 步骤 B ; 若是, 则将下一帧作为当前帧。在优选的实施例中, 步骤 B 和 C 中通过获得机器 内部计时器的时钟频率和计数来确定当前时间。高精度时间计算, 是指通过获得机器内 部计时器的时钟频率, 定义为 Animate Freq( 动画频率 )。以及获取事件发生前的计时 PreAnimateCounter 和事件发。
24、生后的计时 AfterAnimateCounter。然后利用两次获得的计 数差除时钟频率, 也即 (AfterAnimateCounter-PreAnimateCounter)/AnimateFreq。就可 以计算出事件执行完的所需要的精确时间。获取机器内部计时器的时钟频率, 可以通过 QueryPerformanceFrequency 来获取, 获取当期计数可以通过 QueryPerformanceCounter 来获取。 0059 定 义 每 一 帧 执 行 前 的 计 时 为 PreAnimateCounter,当 前 的 计 时 为 CurrentAnimateCounter, 每一帧。
25、的时间为 time。 0060 当 (CurrentAnimateCounter-PreAnimateCounter)/AnimateFreq time 的 时候, 就表示动画要执行一帧, 则将下一帧作为当前帧。将 PreAnimateCounter 赋值为 CurrentAnimateCounter。执行 curN 对应的动画, 执行完后, 对 curN 加 1。 0061 当(CurrentAnimateCounter-PreAnimateCounter)/AnimateFreqtime的时候, 表示还没有到达一帧, 此时继续执行步骤 B。 0062 步骤 E, 判断被执行动画帧数是否等于。
26、切换动画的总帧数 N, 若否, 则转至步骤 B ; 若是, 则切换结束。 0063 在优选的实施例中, 应用平台桌面切换是从屏幕的左边滑到右边, 或者从右边滑 到左边, 因为只有水平位置在变, 而高度都是固定的。在其他实施例中, 可以是从上到下或 者从下到上。 0064 这里假设动画匀速进行, 为了达到更好的效果, 可以加上加速度, 模拟自然运动。 动画以何种方式执行不在本方案之内, 因此假设动画为匀速进行。 0065 那么从 1 N-1 帧, 每一帧要走的长度 step CX/N。 0066 第 N 帧需要走的长度 step CX-(N-1)*CX/N。 0067 假设 : 动画的执行帧数为。
27、 10 帧, 当前分辨率为 1399 像素, 那么每一帧要走的步长 如下表所示。 0068 当前帧 1 2 3 4 5 6 7 8 9 10 要走的步长 139 139 139 139 139 139 139 139 139 148 说 明 书 CN 103176689 A 7 5/8 页 8 0069 由于有向左边和向右边滑动, 因此 Step 带有方向性 : 0070 (1) 当向左滑动的时候, StepcurN -1*StepcurN ; 0071 (2) 当向右滑动的时候, StepcurN 1*StepcurN。 0072 步骤 250, 将临时界面隐藏。在应用平台桌面切换时, 以所。
28、述截图作为临时界面执 行切换动画完成后, 需要将切换前临时界面和切换后临时界面隐藏, 并显示切换前的实际 界面和切换后的实际界面。 0073 步骤 260, 显示切换后的实际界面。在步骤 250 中已经将临时界面隐藏, 此时将切 换后的实际界面显示到屏幕预设位置, 本实施例中, 切换后的实际界面显示在整个屏幕中。 0074 步骤S270, 将临时界面销毁。 在界面切换完毕后, 本次切换的临时界面使命已经完 成, 将临时界面销毁以释放系统缓存。 0075 应用界面进行切换的动画技术, 可以作为桌面界面的切换的动画技术, 也可以作 为窗口界面切换的动画技术。采用截屏技术主要是指在界面切换开始的时候。
29、, 获取切进来 和切出去界面内容的截图, 这样在每一帧滑动的时候, 就只需要把这个截图绘制一遍。 而不 是去把界面里的每一个元素绘制一遍。 该技术大大提高了切换的性能, 提高动画的流畅度。 0076 以下结合图 5 描述应用平台桌面与系统桌面间切换的界面切换方法。应用平台桌 面与系统桌面间切换有两种情况, 其一为应用平台桌面切进屏幕, 覆盖系统桌面 ; 其二为应 用平台桌面离开屏幕, 显示系统桌面。为描述简便, 将上述两种情况一并描述, 具体包括以 下步骤 : 0077 步骤 S510, 接收界面切换的指令。应用平台接收到用户输入的界面切换的指令。 0078 步骤 S520, 判断所述界面切换。
30、是否为在应用平台桌面与系统桌面间切换。本实施 例中, 判断为是, 即应用平台桌面与系统桌面的界面切换指令。 0079 步骤 S530, 对切换前的实际界面和切换后的实际界面中的至少一者进行截图。在 步骤 S520 判断为是时, 则只对切换前的实际界面和切换后的实际界面中的系统桌面截图。 对于应用平台桌面切进屏幕, 覆盖系统桌面的情况, 切换前, 系统桌面已经显示, 所以是对 切换前的实际界面进行截图 ; 对于应用平台桌面离开屏幕, 显示系统桌面的情况, 切换前, 系统桌面尚未显示, 所以是对切换后的实际界面进行截图。 0080 在优选的实施例中, 参考图 3, 对界面截图具体包括步骤 S232。
31、 和步骤 S234 : 0081 步骤S232, 将截图分别存储为相应图像。 具体为, 将切换前的实际界面即系统桌面 进行截图后, 存储为切换前的实际界面图像。 将切换后的实际界面即系统桌面进行截图后, 存储为切换后的实际界面图像。 0082 步骤S234, 隐藏被截图对应的切换前的实际界面或切换后的实际界面。 具体为, 将 切换前的实际界面或切换后的实际界面即系统桌面隐藏, 将切换前的实际界面图像或切换 后的实际界面图像显示。 0083 步骤S540, 以截图作为临时界面执行切换动画。 创建一个临时界面, 将切换前的实 际界面的截图或切换后的实际界面的截图作为临时界面代替切换前的实际界面或切。
32、换后 的实际界面。具体来说, 是将切换前的实际界面图像或切换后的实际界面图像作为切换动 画的背景 : 对于应用平台的应用界面, 即应用平台桌面切进屏幕, 覆盖系统桌面的情况, 截 图作为切换动画的背景, 应用平台桌面在该背景上移动并逐渐覆盖该背景 ; 对于应用平台 的应用界面, 即应用平台桌面离开屏幕, 显示系统桌面的情况, 截图作为切换动画的背景, 说 明 书 CN 103176689 A 8 6/8 页 9 应用平台桌面在该背景上移动并逐渐完全显示该背景。在优选的是实施例中, 采用阻塞式 动画技术对切换前临时界面和应用平台桌面进行桌面切换, 即应用平台接收到界面切换的 切换动画指令后直到切。
33、换动画动作完成期间只执行切换动画的命令而不作其他任何操作。 在每一帧里根据滑动位置与当前帧数的关系, 设置切换前临时界面和应用平台桌面的位 置。 0084 系统桌面和应用平台桌面切换与应用平台桌面自身的切换方案不一样。原因在 于, 应用平台桌面是放置在应用平台桌面容器中的, 应用平台桌面自身的切换方案中, 应用 平台桌面容器的位置是固定的, 覆盖在系统桌面上, 只需要切换应用平台桌面即可 ; 而在系 统桌面和应用平台桌面切换过程中, 需要移动应用平台桌面容器, 通过移动应用平台桌面 容器来移动应用平台桌面。移动应用平台桌面容器时, 可以不采用截图的方式而采用普通 的实际界面来实现动画的切换。将。
34、应用平台桌面容器滑到 (0, 0, cx, cy) 区域之外。当存在 双屏的时候, 如果应用平台桌面容器滑到 (0, 0, cx, cy) 区域之外, 那么就会在另外一个屏 幕看到应用平台桌面, 此时是不符合要求的。因此需要采用设置应用平台的区域 (RGN) 方 案, 此方案主要是 : 0085 1) 设置应用平台桌面容器的位置为 (0, 0, cx, cy), 并且应用平台桌面容器的位置 不会改变。需要改变的是应用平台桌面容器的区域。 0086 2) 定义应用平台的当前区域为 rgnContainer_cur。当 rgnContainer_cur 为 (0, 0, cx, cy) 的时候, 。
35、应用平台桌面容器全部显示, 当 rgnContainer_cur 为 (cx, 0, cx, cy) 的 时候, 应用平台桌面容器不会显示。 0087 3) 应用平台桌面从无到有切进屏幕, 覆盖系统桌面, 其实就是区域从 (cx, 0, cx, cy) 变化到 (0, 0, cx, cy) 的过程。 0088 应用平台桌面从有到无离开屏幕, 显示系统桌面, 其实就是区域从 (0, 0, cx, cy) 变化到 (cx, 0, cx, cy) 的过程。 0089 应用平台的当前区域与当前帧数 ( 假设为 i) 的关系为 : 0090 rgnContainer_cur.left rgnContai。
36、ner_cur.left+Stepi ; 0091 rgnContainer_cur.top rgnContainer_cur.top ; 0092 rgnContainer_cur.right cx ; 0093 rgnContainer_cur.bottom cy。 0094 由于是截图, 所以用户感觉就是真实的系统桌面、 应用平台桌面在做切换。 参考图 4, 将背景作为临时界面执行切换动画具体包括以下步骤 : 0095 步骤 A, 设置当前要切换的当前帧为切换动画的起始帧。 0096 步骤 B, 获取当前时间, 执行当前帧动画。切换前临时界面和应用平台开始进行切 换。 0097 步骤 C。
37、, 获取当前时间, 判断是否到达执行完当前帧的时间, 若否, 则继续执行 步骤 B ; 若是, 则将下一帧作为当前帧。在优选的实施例中, 步骤 B 和 C 中通过获得机器 内部计时器的时钟频率和计数来确定当前时间。高精度时间计算, 是指通过获得机器内 部计时器的时钟频率, 定义为 Animate Freq( 动画频率 )。以及获取事件发生前的计时 PreAnimateCounter 和事件发生后的计时 AfterAnimateCounter。然后利用两次获得的计 数差除时钟频率, 也即 (AfterAnimateCounter-PreAnimateCounter)/AnimateFreq。就可。
38、 说 明 书 CN 103176689 A 9 7/8 页 10 以计算出事件执行完的所需要的精确时间。获取机器内部计时器的时钟频率, 可以通过 QueryPerformanceFrequency 来获取, 获取当期计数可以通过 QueryPerformanceCounter 来获取。 0098 定 义 每 一 帧 执 行 前 的 计 时 为 PreAnimateCounter,当 前 的 计 时 为 CurrentAnimateCounter, 每一帧的时间为 time。 0099 当 (CurrentAnimateCounter-PreAnimateCounter)/AnimateFreq。
39、 time 的 时候, 就表示动画要执行一帧, 则将下一帧作为当前帧。将 PreAnimateCounter 赋值为 CurrentAnimateCounter。执行 curN 对应的动画, 执行完后, 对 curN 加 1。 0100 当(CurrentAnimateCounter-PreAnimateCounter)/AnimateFreqtime的时候, 表示还没有到达一帧, 此时继续执行步骤 B。 0101 步骤 E, 判断被执行动画帧数是否等于切换动画的总帧数 N, 若否, 则转至步骤 B ; 若是, 则切换结束。 0102 在优选的实施例中, 系统桌面与应用平台间的切换是从屏幕的左。
40、边滑到右边, 或 者从右边滑到左边, 因为只有水平位置在变, 而高度都是固定的。在其他实施例中, 可以是 从上到下或者从下到上。 0103 这里假设动画匀速进行, 为了达到更好的效果, 可以加上加速度, 模拟自然运动。 动画以何种方式执行不在本方案之内, 因此假设动画为匀速进行。 0104 那么从 1 N-1 帧, 每一帧要走的长度 step CX/N。 0105 第 N 帧需要走的长度 step CX-(N-1)*CX/N。 0106 假设 : 动画的执行帧数为 10 帧, 当前分辨率为 1399 像素, 那么每一帧要走的步长 如下表所示。 0107 当前帧 1 2 3 4 5 6 7 8 。
41、9 10 要走的步长 139 139 139 139 139 139 139 139 139 148 0108 由于有向左边和向右边滑动, 因此 Step 带有方向性 : 0109 (1) 当向左滑动的时候, StepcurN -1*StepcurN ; 0110 (2) 当向右滑动的时候, StepcurN 1*StepcurN。 0111 步骤S550, 将临时界面隐藏。 在系统桌面和应用平台桌面间切换时, 需要将切换前 临时界面隐藏以显示被切换出来的应用平台桌面或系统桌面。 0112 步骤 S560, 显示切换后的实际界面。在步骤 S550 中已经将临时界面隐藏, 此时将 切换后的实际界。
42、面显示到屏幕预设位置, 切换后的实际界面为应用平台或系统桌面, 将显 示在整个屏幕中。 0113 步骤S570, 将临时界面销毁。 在界面切换完毕后, 本次切换的临时界面使命已经完 成, 将临时界面销毁的步骤以释放系统缓存。 0114 应用界面进行切换的动画技术采用截屏技术。主要是指在界面切换开始的时候, 获取切进来和切出去界面内容的截图, 这样在每一帧滑动的时候, 就只需要把这个截图绘 制一遍。而不是去把界面里的每一个元素绘制一遍。该技术大大提高了切换的性能, 提高 说 明 书 CN 103176689 A 10 8/8 页 11 动画的流畅度。 0115 此外, 还提供了一种界面切换系统,。
43、 包括输入模块、 截图模块、 切换模块及显示模 块。 0116 输入模块用于接收界面切换的指令。 输入模块可以是键盘、 鼠标或触摸屏等, 例如 应用平台接收到用户通过键盘、 鼠标或触摸屏输入的界面切换的指令。 0117 截图模块对切换前的实际界面和切换后的实际界面中的至少一者进行截图。 接收 界面切换的指令后, 在进行切换前显示的当前界面为切换前的实际界面, 切换后显示的界 面为切换后的实际界面。截图模块对上述两者中的至少一者进行截图, 即既可以既对切换 前的实际界面和切换后的实际界面截图, 也可以只对切换前的实际界面截图, 还可以只对 切换后的实际界面截图。 0118 切换模块以所述截图作为。
44、临时界面执行切换动画。 切换模块将获得的截图作为临 时界面, 在运行动画的时候, 即在动画的帧与帧之间切换时, 用截图作为临时界面代替切换 前的实际界面和 / 或切换后的实际界面。 0119 显示模块用于显示切换后的实际界面。动画运行完毕后, 显示模块显示出切换后 的实际界面, 完成界面切换过程。 0120 上述界面切换系统通过对界面进行截图后, 在两个界面之间进行切换的时候, 采 用截图技术实现伪桌面的切换, 切换过程中不需要对切换过程中原界面上的每个元素进行 绘制, 只需要绘制截图, 从而可以减少计算量, 提高界面切换的流畅度, 给用户提供了较好 的操作体验。 0121 在优选的实施方式中。
45、, 上述界面切换系统还包括用于判断所述界面切换是否为应 用平台桌面与系统桌面间切换的判断模块, 若是, 则所述判断模块控制所述截图模块只对 切换前的实际界面和切换后的实际界面中的系统桌面截图 ; 若否, 则所述判断模块控制所 述截图模块对所述应用平台桌面的切换前的实际界面和切换后的实际界面都进行截图。 0122 在优选的实施方式中, 所述切换模块包括 : 设置单元, 用于设置当前要切换的当前 帧为切换动画的起始帧 ; 时间获取单元, 用于获取当前时间 ; 执行单元, 用于执行当前帧动 画 ; 时间判断单元, 用于根据所述时间获取单元获取的当前时间, 判断是否到达执行完当前 帧的时间, 若否, 。
46、则控制执行单元继续执行当前帧动画 ; 若是, 则将下一帧作为当前帧 ; 帧 数判断单元, 用于判断被执行动画帧数是否等于切换动画的总帧数 N, 若否, 则控制执行单 元继续执行当前帧动画 ; 若是, 则切换动画结束。 0123 在优选的实施方式中, 所述时间获取单元通过获得机器内部计时器的时钟频率和 计数来确定当前时间。 0124 以上所述实施例仅表达了本发明的几种实施方式, 其描述较为具体和详细, 但并 不能因此而理解为对本发明专利范围的限制。应当指出的是, 对于本领域的普通技术人员 来说, 在不脱离本发明构思的前提下, 还可以做出若干变形和改进, 这些都属于本发明的保 护范围。因此, 本发明专利的保护范围应以所附权利要求为准。 说 明 书 CN 103176689 A 11 1/5 页 12 图 1 说 明 书 附 图 CN 103176689 A 12 2/5 页 13 图 2 说 明 书 附 图 CN 103176689 A 13 3/5 页 14 图 3 说 明 书 附 图 CN 103176689 A 14 4/5 页 15 图 4 说 明 书 附 图 CN 103176689 A 15 5/5 页 16 图 5 说 明 书 附 图 CN 103176689 A 16 。