移动终端用户界面增强视效实现方法及其装置的制作方法

文档序号:6596732阅读:211来源:国知局
专利名称:移动终端用户界面增强视效实现方法及其装置的制作方法
技术领域
本发明涉及移动终端操作系统二次开发和移动终端用户界面设计,更具体的说,
是一种使用移动终端操作系统帧缓冲区技术实现移动终端用户界面增强视效的方法和装置。
背景技术
移动终端用户界面视效,指的是移动终端用户界面(UI)以及UI元素所呈现给使 用者的一种视觉效果。好的移动终端视效,不仅能给移动终端使用者带来更好的使用体验, 而且能提高使用移动终端各种功能的效率。 目前的移动终端开发平台如Arena平台对用户界面视效开发提供的支持十分有 限。这种开发平台有几个特点一、一般只提供基本用户界面开发能力;二、一般使用第三 方UI模块,因此UI模块部分一般只提供库文件,没有提供源文件,很难直接对UI模块进行 二次开发。因此,机开发平台如Arena平台存在几乎没有或只提供了很少的用户界面视效 的问题。

发明内容
针对一些移动终端开发平台(如Arena平台)几乎没有或只提供了很少的用户界 面视效的问题,本发明提供一种移动终端用户界面增强视效实现方法,以便能够在这类平 台上实现用户界面切换增强动画视效的功能。 此外,本发明的另一目的是提供一种移动终端用户界面增强视效的装置。
根据本发明第一方面,移动终端用户界面增强视效实现方法包括以下步骤
获取并保存当前窗口界面W1 ; 在不显示下一窗口的条件下获取并保存下一窗口界面W2 ; 利用保存的当前窗口界面W1和下一窗口界面W2生成过渡动画,并在当前窗口与 下一窗口之间进行播放; 显示过渡动画之后,正常显示下一窗口界面W2。 所述获取并保存当前窗口界面W1具体为将UI(用户界面)模块管理的上层帧缓 冲区的当前窗口的界面数据复制到第一缓存(src)中,获取并保存当前窗口界面W1。
所述获取并保存下一窗口界面W2具体为控制直接关联屏幕的底层帧缓冲区,以 禁止写入数据;UI模块把下一窗口界面W2的数据写入由UI模块管理的上层帧缓冲区;UI 模块把已写入所述上层帧缓冲区的界面数据复制到第二缓存(dest)中,从而获得所述下 一窗口界面W2。 所述禁止写入数据具体为显示管理器调用不允许刷新屏幕的函数(dd_lcd_ disable—refresh),禁止将数据写入底层帧缓冲区。 所述当前窗口界面Wl和下一窗口界面W2生成过渡动画包括控制直接关联屏幕 的底层帧缓冲区,以允许写入数据;将第一缓存src中的当前窗口界面Wl数据与第二缓存dest中的下一窗口界面W2数据合成为新界面数据并将其复制到上层帧缓冲区;将来自所 述上层帧缓冲区的所述新界面数据写入底层帧缓冲区,使其显示在屏幕上,从而得到动画 效果。 所述控制直接关联屏幕的底层帧缓冲区,以允许写入数据具体为显示管理器调
用允许刷新屏幕函数(dcLlccLenable—refresh),将数据写入下层缓冲区。 所述将来自所述上层帧缓冲区的所述新界面数据写入底层帧缓冲区,具体为显
示管理器调用允许刷新屏幕函数(dcLlccLenable—refresh),从而将来自上层帧缓冲区的
所述新界面数据写入底层帧缓冲区。 根据本发明第二方面,移动终端用户界面增强视效的装置包括 窗口保存模块,用于获取并保存当前窗口界面W1和下一窗口界面W2 ; 动画生成显示模块,用于生成当前窗口界面W1与下一窗口界面W2之间的过渡动
画并显示; 窗口显示模块,用于显示当前窗口 ,并在显示过渡动画之后,正常显示下一窗口界 面W2的装置。 所述窗口保存模块进一步包括 控制直接关联屏幕的下层帧缓冲区,以禁止写入数据;
将下一窗口界面W2的数据写入上层帧缓冲区; 将已写入所述上层帧缓冲区的界面数据复制到第二缓存(dest)中,从而获得所 述下一窗口界面W2。
所述动画生成显示模块进一步包括 控制直接关联屏幕的下层帧缓冲区,以允许写入数据; 将第一缓存src中的当前窗口界面Wl数据与第二缓存dest中的下一窗口界面W2 数据合成为新界面数据并将其复制到上层帧缓冲区; 将来自所述上层帧缓冲区的所述新界面数据写入下层帧缓冲区,使其显示在屏幕
上,从而得到动画效果。
本发明具有以下特点 1.对移动终端平台屏幕驱动子模块进行二次开发,通过对LCD直接相关的底层帧 缓冲区的写入控制,实现对LCD屏幕刷新的控制,并向上层提供相应的控制接口 。
2.通过UI模块提供的接口实现对上层帧缓冲区的读取,写入和管理,实现步骤A、 B中获取用户界面帧画面的功能和步骤C中的动画增强视觉效果。 3.可方便的集成第三方图形库以方便开发更多功能更强的用户界面视觉效果。
4.通过窗口的隐藏和重绘技术,并配合LCD屏幕刷新控制,使得窗口切换过程中 的增强视效画面流畅,无闪烁。 此外,本发明能够在既不增加硬件成本和软件成本,也不增加开发难度和开发周 期的条件下,在这类移动终端上实现用户界面切换过程中更多的增强视效。


图1为本发明的移动终端用户界面增强视效的装置的方框图;
图2是显示本发明的用户界面视效显示方法的示意 图3是显示图2中的获取并保存下一窗口界面W2的方法的示意图; 图4是显示图2中的生成过渡动画并在当前窗口与下一窗口之间播放方法的示意
图; 图5为本发明装置的实施例的示意图; 图6为图5中屏幕驱动子模块架构示意图; 图7为图5中上层和底层帧缓冲区关系示意图; 图8为实现发明中用户界面增强视效的实施例的流程图。
具体实施例方式
为了使本发明的目的、技术方案及优点更加清晰明白,以下结合附图及实施例,对 本发明做进一步的详细说明。应当理解,此处所描述的具体实施方案在Arena平台上实现, 用于解释本发明,并不用于限定本发明。 图i显示了本发明的移动终端用户界面增强视效的装置,如图1所示,该装置包 括 窗口界面保存模块,用于获取并保存当前窗口界面W1和下一窗口界面W2 ;
动画生成显示模块,用于生成当前窗口界面W1和下一窗口界面W2之间的过渡动 画并显示; 窗口显示模块,用于显示当前窗口 ,并在显示过渡动画之后,正常显示下一窗口界 面W2。 上述窗口保存模块进一步包括控制直接关联屏幕的下层帧缓冲区,以禁止写入 数据;将下一窗口界面W2的数据写入上层帧缓冲区;将已写入所述上层帧缓冲区的界面数 据复制到第二缓存(dest)中,从而获得所述下一窗口界面W2。 上述动画生成显示模块进一步包括控制直接关联屏幕的下层帧缓冲区,以允许 写入数据;将第一缓存src中的当前窗口界面Wl数据与第二缓存dest中的下一窗口界面 W2数据合成为新界面数据并将其复制到上层帧缓冲区;将来自所述上层帧缓冲区的所述 新界面数据写入下层帧缓冲区,使其显示在屏幕上,从而得到动画效果。
本发明的装置可以通过硬件实现,也可以通过硬件和软件结合方式实现,下面将 结合具体实例进行详细说明。 图2显示了实现本发明的方法的步骤示意图,如图2所示,本发明的用户界面视效 实现方法包括以下步骤 步骤S20,获取并保存当前窗口界面W1 ; 步骤S21,在不显示下一窗口的条件下获取并保存下一窗口界面W2 ; 步骤S22,利用保存的当前窗口界面W1和下一窗口界面W2生成过渡动画,并在当
前窗口与下一窗口之间进行播放; 步骤S23,显示过渡动画之后,正常显示下一窗口界面W2。 其中获取并保存当前窗口界面W1的步骤S20具体为将UI(用户界面)模块管理 的上层帧缓冲区的当前窗口的界面数据复制到第一缓存(src)中,获取并保存当前窗口界 面Wl。 图3显示了实现步骤S21的具体步骤,即在不显示下一窗口的条件下获取并保存下一窗口界面W2的子步骤包括 步骤S30,控制直接关联屏幕的底层帧缓冲区,以禁止写入数据; 步骤S31,UI模块把下一窗口界面W2的数据写入由UI模块管理的上层帧缓冲区; 步骤S32,模块把已写入所述上层帧缓冲区的界面数据复制到第二缓存(dest)
中,从而获得所述下一窗口界面W2。 其中禁止写入数据的步骤S30具体为显示管理器调用不允许刷新屏幕的函数 (dcLlccLdisable—refresh),禁止将数据写入底层帧缓冲区。 图4显示了实现步骤S22的具体步骤,即利用Wl和W2生成过渡动画并进行播放 的子步骤包括 步骤S40,控制直接关联屏幕的底层帧缓冲区,以允许写入数据; 步骤S41 ,将第一缓存src中的当前窗口界面Wl数据与第二缓存dest中的下一窗
口界面W2数据合成为新界面数据并将其复制到上层帧缓冲区; 步骤S42,将来自所述上层帧缓冲区的所述新界面数据写入底层帧缓冲区,使其显 示在屏幕上,从而得到动画效果。 其中,控制直接关联屏幕的底层帧缓冲区,以允许写入数据具体为显示管理器调
用允许刷新屏幕函数(dcLlccLenable—refresh),将数据写入下层缓冲区。 另外,将来自所述上层帧缓冲区的所述新界面数据写入底层帧缓冲区,具体为显
示管理器调用允许刷新屏幕函数(dcLlccLenable—refresh),从而将来自上层帧缓冲区的
所述新界面数据写入底层帧缓冲区。 图5显示了实现图1所示装置的具体实施例,即本发明的移动终端平台图形用户 界面的整体结构,用户应用(application)程序直接通过UI模块提供的接口绘制图形用户 界面,UI模块直接管理一块上层帧缓冲区(frame Buffer) ,UI模块直接向这块帧缓冲区输 出绘制的界面。LCD(液晶显示器)驱动部分(LCD Driver)有一块与LCD直接相关的底层 帧缓冲区(frame Buffer),底层帧缓冲区直接关联LCD的显示。操作系统层有一个显示管 理模块(Display Manager)对底层帧缓冲区进行管理。显示管理模块通过屏幕驱动向底层 帧缓冲区中写入数据。 因此,如图1所示,本发明的移动终端用户界面增强视效实现装置可以包括用户 应用程序,用于直接通过UI模块提供的接口绘制下一窗口界面W2 ;直接管理上层帧缓冲区 的UI模块,所述UI模块向上层帧缓冲区输出当前窗口界面Wl和所述下一窗口界面W2 ;具 有底层帧缓冲区的屏幕驱动器,所述底层帧缓冲区直接关联LCD的显示;对底层帧缓冲区 进行管理的显示管理模块,所述显示管理模块通过屏幕驱动向底层帧缓冲区中写入数据; 其中所述UI模块将当前窗口界面Wl和所述下一窗口界面W2合成为新界面数据,以作为当 前窗口界面W1与下一窗口界面之间的过渡动画。 图6显示了本发明中屏幕驱动(LCD Driver)子模块架构,屏幕驱动可以分为六个 功能子模块,包括初始化子模块Init,打开子模块Open,控制子模块Control,写入子模块 Write,释放子模块Release和退出子模块Exit。屏幕驱动通过写入子模块Write的dd_ lcd_Write函数向底层帧缓冲区中写入帧数据。因此通过对LCD直接相关的底层帧缓冲区 的写入控制,实现了对LCD屏幕刷新的控制,具体改进如下
在文件aren£i\src\drivers\dil\lcd\dd_lcd_£i2000p_mv8602. c中
把原有的dd_lcd_write函数的函数名改为dd_lcd_writeEx 添加整型变量enableRefreshLCD,控制是否允许刷新LCD屏幕 添加新的dd_lCd_Write函数替代原有的dd_lCd_Write以供其他模块调用,使得
只有在允许的时候才可以调用dcLlccLwriteEx向底层帧缓冲区中写入帧数据。dd_lcd_
write函数实现如下 SINT32_dd_lcd_write(char*user_buf, UINT32 co皿t, UINT32 op_flag)
{if (1 == enableRefreshLCD) dd_lcd_writeEx (user_buf , co皿t, op_flag); } 向上层提供是否允许刷新LCD屏幕的开关接口 dd_lcd_enable_refresh和dd_ lcd_disable_refresh。具体实现如下
SINT32 dd_lcd_enable_refresh()
{enableRefresh!XD = 1 ;
} SINT32 dd_lcd_disable_refresh()
{enableRefresh!XD = 0 ;
} 这样屏幕驱动器就可以向显示管理器提供允许刷新LCD屏幕函数dd_lcd_ enable—refresh (在此情况下,允许写数据到底层缓冲区)和不允许刷新LCD屏幕函数dd_ lccLdisable—refresh(在此情况下,不允许写数据到底层缓冲区)。也就是说,本发明利 用允许刷新屏幕函数dd_lcd_enable_refresh和不允许刷新屏幕函数dd_lcd_disable_ refresh对LCD直接相关的底层帧缓冲区的写入控制,实现对LCD屏幕刷新的控制,并向上 层提供相应的控制接口。 图7为本发明中上层和底层帧缓冲区关系示意图。通过显示窗口/隐藏窗口 对UI模块管理的帧缓冲区进行控制通过调用显示窗口函数ShowWindow (hwnd, SW_ SHOW)使得UI模块能够把控制的窗口界面绘制到上层帧缓冲区中;通过调用隐藏窗口 函数ShowWindow (hwnd, SW_HIDE)使得UI模块不能够把控制的窗口界面绘制到UI模 块管理的帧缓冲区中。在对底层帧缓冲区的控制中,通常由操作系统层的显示管理器 (DisplayManager)通过调用允许LCD刷新函数dd_lcd_enable_refresh或者调用不允许 LCD刷新dd_lCd_disable_refresh来控制是否允许从UI模块管理的帧缓冲区写入数据到 底层帧缓冲区。 图8是在图5 图7所示的具体实施例上实现户界面增强视效的流程图,图8所 示的流程包括 步骤801 :UI模块调用函数ShowWindow(hwnd, SW_HIDE),隐藏将要绘制的窗口 ;
步骤802 :系统锁定UI模块管理的帧缓冲区(即,得到UI模块管理的帧缓冲区的 指针以便可以读取或写入这块帧缓冲区,与此同时,其它线程或进程将不能对这块帧缓冲区进行读取或写入)并把帧缓冲区的数据Wl复制到数据缓存src中; 步骤803 :显示管理器通过调用函数dcLlccLdisable—refresh设置不允许写入数
据到底层帧缓冲区; 步骤804 :UI模块通过调用函数ShowWindow(hwnd, SW_SH0W)显示将要绘制的窗 □; 步骤805 :通过UI模块通过调用函数UpdateWindow,把将要显示的窗口绘制到UI 模块管理的上层帧帧缓冲区中; 步骤806 :系统锁定UI模块管理的帧缓冲区并把上层帧缓冲区的数据W2复制到 数据缓存dest中; 步骤807 :系统锁定UI模块管理的帧缓冲区并把数据缓存src中的数据Wl复制 到帧缓冲区中。 步骤808 :显示管理器通过调用函数dd_lcd_enable_refresh()设置允许写入数 据到底层帧缓冲区; 步骤809 :根据相应的算法(可以是任何动画算法)把缓存src和dest中的数据 Wl和W2合成视效帧数据res ; 步骤810 :锁定UI模块管理的帧缓冲区并且UI模块把视效帧数据res复制到上 层帧缓冲区中; 步骤811 :显示管理器刷新屏幕显示并等待一段时间,以便在这段时间播放视效 帧数据res ; 步骤812 :判断视效动画是否结束,是结束;否转到步骤809。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化,本发明的保护范围以权利要求为准。
权利要求
一种用户界面视效实现方法,包括以下步骤获取并保存当前窗口界面W1;在不显示下一窗口的条件下获取并保存下一窗口界面W2;利用保存的当前窗口界面W1和下一窗口界面W2生成过渡动画,并在当前窗口与下一窗口之间进行播放;显示过渡动画之后,正常显示下一窗口界面W2。
2. 根据权利要求1所述的方法,所述获取并保存当前窗口界面Wl具体为 将上层帧缓冲区的当前窗口的界面数据复制到第一缓存(src)中,获取并保存当前窗口界面Wl。
3. 根据权利要求1所述的方法,所述获取并保存下一窗口界面W2具体为 控制直接关联屏幕的下层帧缓冲区,以禁止写入数据; 将下一窗口界面W2的数据写入上层帧缓冲区;将已写入所述上层帧缓冲区的界面数据复制到第二缓存(dest)中,从而获得所述下 一窗口界面W2。
4. 根据权利要求3所述的方法,所述禁止写入数据具体为显示管理器调用不允许刷新屏幕的函数(dcLlccLdisable—refresh),禁止将数据写入 下层帧缓冲区。
5. 根据权利要求1所述的方法,所述当前窗口界面W1和下一窗口界面W2生成过渡动 画包括控制直接关联屏幕的下层帧缓冲区,以允许写入数据;将第一缓存src中的当前窗口界面Wl数据与第二缓存dest中的下一窗口界面W2数 据合成为新界面数据并将其复制到上层帧缓冲区;将来自所述上层帧缓冲区的所述新界面数据写入下层帧缓冲区,使其显示在屏幕上, 从而得到动画效果。
6. 根据权利要求5所述的方法,所述将数据写入下层帧缓冲区具体为显示管理器调 用允许刷新屏幕函数(dcLlccLenable—refresh),将数据写入下层缓冲区。
7. —种移动终端用户界面增强视效的装置,包括窗口保存模块,用于获取并保存当前窗口界面Wl和下一窗口界面W2 ; 动画生成显示模块,用于生成当前窗口界面W1和下一窗口界面W2之间的过渡动画并 显示;窗口显示模块,用于显示当前窗口 ,并在显示过渡动画之后,正常显示下一窗口界面W2。
8. 根据权利要求7所述的装置,所述窗口保存模块进一步包括将上层帧缓冲区的当前窗口的界面数据复制到第一缓存(src)中,从而获取并保存当 前窗口界面W1。
9. 根据权利要求7所述的装置,所述窗口保存模块进一步包括 控制直接关联屏幕的下层帧缓冲区,以禁止写入数据; 将下一窗口界面W2的数据写入上层帧缓冲区;将已写入所述上层帧缓冲区的界面数据复制到第二缓存(dest)中,从而获得所述下一窗口界面W2。
10.根据权利要求7所述的装置,所述动画生成显示模块进一步包括 控制直接关联屏幕的下层帧缓冲区,以允许写入数据;将第一缓存src中的当前窗口界面Wl数据与第二缓存dest中的下一窗口界面W2数 据合成为新界面数据并将其复制到上层帧缓冲区;将来自所述上层帧缓冲区的所述新界面数据写入下层帧缓冲区,使其显示在屏幕上, 从而得到动画效果。
全文摘要
本发明公开了一种手机用户界面增强视效实现方法及其装置,本发明的方法包括A.获取并保存当前窗口界面W1;B.在不显示下一窗口的条件下获取并保存下一窗口界面W2;C.利用保存的当前窗口界面W1和下一窗口界面W2生成过渡动画,并在当前窗口与下一窗口之间进行播放;D.显示过渡动画之后,正常显示下一窗口界面W2。本发明能够在既不增加硬件成本和软件成本,也不增加开发难度和开发周期的条件下,在这类手机上实现用户界面切换过程中更多的增强视效。
文档编号G06F9/48GK101714088SQ20101000010
公开日2010年5月26日 申请日期2010年1月4日 优先权日2010年1月4日
发明者傅启洪, 廖海亮, 张芝萍 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1