專利名稱:移動(dòng)終端用戶界面增強(qiáng)視效實(shí)現(xiàn)方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動(dòng)終端操作系統(tǒng)二次開發(fā)和移動(dòng)終端用戶界面設(shè)計(jì),更具體的說,
是一種使用移動(dòng)終端操作系統(tǒng)幀緩沖區(qū)技術(shù)實(shí)現(xiàn)移動(dòng)終端用戶界面增強(qiáng)視效的方法和裝置。
背景技術(shù):
移動(dòng)終端用戶界面視效,指的是移動(dòng)終端用戶界面(UI)以及UI元素所呈現(xiàn)給使 用者的一種視覺效果。好的移動(dòng)終端視效,不僅能給移動(dòng)終端使用者帶來更好的使用體驗(yàn), 而且能提高使用移動(dòng)終端各種功能的效率。 目前的移動(dòng)終端開發(fā)平臺(tái)如Arena平臺(tái)對(duì)用戶界面視效開發(fā)提供的支持十分有 限。這種開發(fā)平臺(tái)有幾個(gè)特點(diǎn)一、一般只提供基本用戶界面開發(fā)能力;二、一般使用第三 方UI模塊,因此UI模塊部分一般只提供庫文件,沒有提供源文件,很難直接對(duì)UI模塊進(jìn)行 二次開發(fā)。因此,機(jī)開發(fā)平臺(tái)如Arena平臺(tái)存在幾乎沒有或只提供了很少的用戶界面視效 的問題。
發(fā)明內(nèi)容
針對(duì)一些移動(dòng)終端開發(fā)平臺(tái)(如Arena平臺(tái))幾乎沒有或只提供了很少的用戶界 面視效的問題,本發(fā)明提供一種移動(dòng)終端用戶界面增強(qiáng)視效實(shí)現(xiàn)方法,以便能夠在這類平 臺(tái)上實(shí)現(xiàn)用戶界面切換增強(qiáng)動(dòng)畫視效的功能。 此外,本發(fā)明的另一目的是提供一種移動(dòng)終端用戶界面增強(qiáng)視效的裝置。
根據(jù)本發(fā)明第一方面,移動(dòng)終端用戶界面增強(qiáng)視效實(shí)現(xiàn)方法包括以下步驟
獲取并保存當(dāng)前窗口界面W1 ; 在不顯示下一窗口的條件下獲取并保存下一窗口界面W2 ; 利用保存的當(dāng)前窗口界面W1和下一窗口界面W2生成過渡動(dòng)畫,并在當(dāng)前窗口與 下一窗口之間進(jìn)行播放; 顯示過渡動(dòng)畫之后,正常顯示下一窗口界面W2。 所述獲取并保存當(dāng)前窗口界面W1具體為將UI(用戶界面)模塊管理的上層幀緩 沖區(qū)的當(dāng)前窗口的界面數(shù)據(jù)復(fù)制到第一緩存(src)中,獲取并保存當(dāng)前窗口界面W1。
所述獲取并保存下一窗口界面W2具體為控制直接關(guān)聯(lián)屏幕的底層幀緩沖區(qū),以 禁止寫入數(shù)據(jù);UI模塊把下一窗口界面W2的數(shù)據(jù)寫入由UI模塊管理的上層幀緩沖區(qū);UI 模塊把已寫入所述上層幀緩沖區(qū)的界面數(shù)據(jù)復(fù)制到第二緩存(dest)中,從而獲得所述下 一窗口界面W2。 所述禁止寫入數(shù)據(jù)具體為顯示管理器調(diào)用不允許刷新屏幕的函數(shù)(dd_lcd_ disable—refresh),禁止將數(shù)據(jù)寫入底層幀緩沖區(qū)。 所述當(dāng)前窗口界面Wl和下一窗口界面W2生成過渡動(dòng)畫包括控制直接關(guān)聯(lián)屏幕 的底層幀緩沖區(qū),以允許寫入數(shù)據(jù);將第一緩存src中的當(dāng)前窗口界面Wl數(shù)據(jù)與第二緩存dest中的下一窗口界面W2數(shù)據(jù)合成為新界面數(shù)據(jù)并將其復(fù)制到上層幀緩沖區(qū);將來自所 述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入底層幀緩沖區(qū),使其顯示在屏幕上,從而得到動(dòng)畫 效果。 所述控制直接關(guān)聯(lián)屏幕的底層幀緩沖區(qū),以允許寫入數(shù)據(jù)具體為顯示管理器調(diào)
用允許刷新屏幕函數(shù)(dcLlccLenable—refresh),將數(shù)據(jù)寫入下層緩沖區(qū)。 所述將來自所述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入底層幀緩沖區(qū),具體為顯
示管理器調(diào)用允許刷新屏幕函數(shù)(dcLlccLenable—refresh),從而將來自上層幀緩沖區(qū)的
所述新界面數(shù)據(jù)寫入底層幀緩沖區(qū)。 根據(jù)本發(fā)明第二方面,移動(dòng)終端用戶界面增強(qiáng)視效的裝置包括 窗口保存模塊,用于獲取并保存當(dāng)前窗口界面W1和下一窗口界面W2 ; 動(dòng)畫生成顯示模塊,用于生成當(dāng)前窗口界面W1與下一窗口界面W2之間的過渡動(dòng)
畫并顯示; 窗口顯示模塊,用于顯示當(dāng)前窗口 ,并在顯示過渡動(dòng)畫之后,正常顯示下一窗口界 面W2的裝置。 所述窗口保存模塊進(jìn)一步包括 控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以禁止寫入數(shù)據(jù);
將下一窗口界面W2的數(shù)據(jù)寫入上層幀緩沖區(qū); 將已寫入所述上層幀緩沖區(qū)的界面數(shù)據(jù)復(fù)制到第二緩存(dest)中,從而獲得所 述下一窗口界面W2。
所述動(dòng)畫生成顯示模塊進(jìn)一步包括 控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以允許寫入數(shù)據(jù); 將第一緩存src中的當(dāng)前窗口界面Wl數(shù)據(jù)與第二緩存dest中的下一窗口界面W2 數(shù)據(jù)合成為新界面數(shù)據(jù)并將其復(fù)制到上層幀緩沖區(qū); 將來自所述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入下層幀緩沖區(qū),使其顯示在屏幕
上,從而得到動(dòng)畫效果。
本發(fā)明具有以下特點(diǎn) 1.對(duì)移動(dòng)終端平臺(tái)屏幕驅(qū)動(dòng)子模塊進(jìn)行二次開發(fā),通過對(duì)LCD直接相關(guān)的底層幀 緩沖區(qū)的寫入控制,實(shí)現(xiàn)對(duì)LCD屏幕刷新的控制,并向上層提供相應(yīng)的控制接口 。
2.通過UI模塊提供的接口實(shí)現(xiàn)對(duì)上層幀緩沖區(qū)的讀取,寫入和管理,實(shí)現(xiàn)步驟A、 B中獲取用戶界面幀畫面的功能和步驟C中的動(dòng)畫增強(qiáng)視覺效果。 3.可方便的集成第三方圖形庫以方便開發(fā)更多功能更強(qiáng)的用戶界面視覺效果。
4.通過窗口的隱藏和重繪技術(shù),并配合LCD屏幕刷新控制,使得窗口切換過程中 的增強(qiáng)視效畫面流暢,無閃爍。 此外,本發(fā)明能夠在既不增加硬件成本和軟件成本,也不增加開發(fā)難度和開發(fā)周 期的條件下,在這類移動(dòng)終端上實(shí)現(xiàn)用戶界面切換過程中更多的增強(qiáng)視效。
圖1為本發(fā)明的移動(dòng)終端用戶界面增強(qiáng)視效的裝置的方框圖;
圖2是顯示本發(fā)明的用戶界面視效顯示方法的示意 圖3是顯示圖2中的獲取并保存下一窗口界面W2的方法的示意圖; 圖4是顯示圖2中的生成過渡動(dòng)畫并在當(dāng)前窗口與下一窗口之間播放方法的示意
圖; 圖5為本發(fā)明裝置的實(shí)施例的示意圖; 圖6為圖5中屏幕驅(qū)動(dòng)子模塊架構(gòu)示意圖; 圖7為圖5中上層和底層幀緩沖區(qū)關(guān)系示意圖; 圖8為實(shí)現(xiàn)發(fā)明中用戶界面增強(qiáng)視效的實(shí)施例的流程圖。
具體實(shí)施例方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清晰明白,以下結(jié)合附圖及實(shí)施例,對(duì) 本發(fā)明做進(jìn)一步的詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方案在Arena平臺(tái)上實(shí)現(xiàn), 用于解釋本發(fā)明,并不用于限定本發(fā)明。 圖i顯示了本發(fā)明的移動(dòng)終端用戶界面增強(qiáng)視效的裝置,如圖1所示,該裝置包 括 窗口界面保存模塊,用于獲取并保存當(dāng)前窗口界面W1和下一窗口界面W2 ;
動(dòng)畫生成顯示模塊,用于生成當(dāng)前窗口界面W1和下一窗口界面W2之間的過渡動(dòng) 畫并顯示; 窗口顯示模塊,用于顯示當(dāng)前窗口 ,并在顯示過渡動(dòng)畫之后,正常顯示下一窗口界 面W2。 上述窗口保存模塊進(jìn)一步包括控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以禁止寫入 數(shù)據(jù);將下一窗口界面W2的數(shù)據(jù)寫入上層幀緩沖區(qū);將已寫入所述上層幀緩沖區(qū)的界面數(shù) 據(jù)復(fù)制到第二緩存(dest)中,從而獲得所述下一窗口界面W2。 上述動(dòng)畫生成顯示模塊進(jìn)一步包括控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以允許 寫入數(shù)據(jù);將第一緩存src中的當(dāng)前窗口界面Wl數(shù)據(jù)與第二緩存dest中的下一窗口界面 W2數(shù)據(jù)合成為新界面數(shù)據(jù)并將其復(fù)制到上層幀緩沖區(qū);將來自所述上層幀緩沖區(qū)的所述 新界面數(shù)據(jù)寫入下層幀緩沖區(qū),使其顯示在屏幕上,從而得到動(dòng)畫效果。
本發(fā)明的裝置可以通過硬件實(shí)現(xiàn),也可以通過硬件和軟件結(jié)合方式實(shí)現(xiàn),下面將 結(jié)合具體實(shí)例進(jìn)行詳細(xì)說明。 圖2顯示了實(shí)現(xiàn)本發(fā)明的方法的步驟示意圖,如圖2所示,本發(fā)明的用戶界面視效 實(shí)現(xiàn)方法包括以下步驟 步驟S20,獲取并保存當(dāng)前窗口界面W1 ; 步驟S21,在不顯示下一窗口的條件下獲取并保存下一窗口界面W2 ; 步驟S22,利用保存的當(dāng)前窗口界面W1和下一窗口界面W2生成過渡動(dòng)畫,并在當(dāng)
前窗口與下一窗口之間進(jìn)行播放; 步驟S23,顯示過渡動(dòng)畫之后,正常顯示下一窗口界面W2。 其中獲取并保存當(dāng)前窗口界面W1的步驟S20具體為將UI(用戶界面)模塊管理 的上層幀緩沖區(qū)的當(dāng)前窗口的界面數(shù)據(jù)復(fù)制到第一緩存(src)中,獲取并保存當(dāng)前窗口界 面Wl。 圖3顯示了實(shí)現(xiàn)步驟S21的具體步驟,即在不顯示下一窗口的條件下獲取并保存下一窗口界面W2的子步驟包括 步驟S30,控制直接關(guān)聯(lián)屏幕的底層幀緩沖區(qū),以禁止寫入數(shù)據(jù); 步驟S31,UI模塊把下一窗口界面W2的數(shù)據(jù)寫入由UI模塊管理的上層幀緩沖區(qū); 步驟S32,模塊把已寫入所述上層幀緩沖區(qū)的界面數(shù)據(jù)復(fù)制到第二緩存(dest)
中,從而獲得所述下一窗口界面W2。 其中禁止寫入數(shù)據(jù)的步驟S30具體為顯示管理器調(diào)用不允許刷新屏幕的函數(shù) (dcLlccLdisable—refresh),禁止將數(shù)據(jù)寫入底層幀緩沖區(qū)。 圖4顯示了實(shí)現(xiàn)步驟S22的具體步驟,即利用Wl和W2生成過渡動(dòng)畫并進(jìn)行播放 的子步驟包括 步驟S40,控制直接關(guān)聯(lián)屏幕的底層幀緩沖區(qū),以允許寫入數(shù)據(jù); 步驟S41 ,將第一緩存src中的當(dāng)前窗口界面Wl數(shù)據(jù)與第二緩存dest中的下一窗
口界面W2數(shù)據(jù)合成為新界面數(shù)據(jù)并將其復(fù)制到上層幀緩沖區(qū); 步驟S42,將來自所述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入底層幀緩沖區(qū),使其顯 示在屏幕上,從而得到動(dòng)畫效果。 其中,控制直接關(guān)聯(lián)屏幕的底層幀緩沖區(qū),以允許寫入數(shù)據(jù)具體為顯示管理器調(diào)
用允許刷新屏幕函數(shù)(dcLlccLenable—refresh),將數(shù)據(jù)寫入下層緩沖區(qū)。 另外,將來自所述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入底層幀緩沖區(qū),具體為顯
示管理器調(diào)用允許刷新屏幕函數(shù)(dcLlccLenable—refresh),從而將來自上層幀緩沖區(qū)的
所述新界面數(shù)據(jù)寫入底層幀緩沖區(qū)。 圖5顯示了實(shí)現(xiàn)圖1所示裝置的具體實(shí)施例,即本發(fā)明的移動(dòng)終端平臺(tái)圖形用戶 界面的整體結(jié)構(gòu),用戶應(yīng)用(application)程序直接通過UI模塊提供的接口繪制圖形用戶 界面,UI模塊直接管理一塊上層幀緩沖區(qū)(frame Buffer) ,UI模塊直接向這塊幀緩沖區(qū)輸 出繪制的界面。LCD(液晶顯示器)驅(qū)動(dòng)部分(LCD Driver)有一塊與LCD直接相關(guān)的底層 幀緩沖區(qū)(frame Buffer),底層幀緩沖區(qū)直接關(guān)聯(lián)LCD的顯示。操作系統(tǒng)層有一個(gè)顯示管 理模塊(Display Manager)對(duì)底層幀緩沖區(qū)進(jìn)行管理。顯示管理模塊通過屏幕驅(qū)動(dòng)向底層 幀緩沖區(qū)中寫入數(shù)據(jù)。 因此,如圖1所示,本發(fā)明的移動(dòng)終端用戶界面增強(qiáng)視效實(shí)現(xiàn)裝置可以包括用戶 應(yīng)用程序,用于直接通過UI模塊提供的接口繪制下一窗口界面W2 ;直接管理上層幀緩沖區(qū) 的UI模塊,所述UI模塊向上層幀緩沖區(qū)輸出當(dāng)前窗口界面Wl和所述下一窗口界面W2 ;具 有底層幀緩沖區(qū)的屏幕驅(qū)動(dòng)器,所述底層幀緩沖區(qū)直接關(guān)聯(lián)LCD的顯示;對(duì)底層幀緩沖區(qū) 進(jìn)行管理的顯示管理模塊,所述顯示管理模塊通過屏幕驅(qū)動(dòng)向底層幀緩沖區(qū)中寫入數(shù)據(jù); 其中所述UI模塊將當(dāng)前窗口界面Wl和所述下一窗口界面W2合成為新界面數(shù)據(jù),以作為當(dāng) 前窗口界面W1與下一窗口界面之間的過渡動(dòng)畫。 圖6顯示了本發(fā)明中屏幕驅(qū)動(dòng)(LCD Driver)子模塊架構(gòu),屏幕驅(qū)動(dòng)可以分為六個(gè) 功能子模塊,包括初始化子模塊Init,打開子模塊Open,控制子模塊Control,寫入子模塊 Write,釋放子模塊Release和退出子模塊Exit。屏幕驅(qū)動(dòng)通過寫入子模塊Write的dd_ lcd_Write函數(shù)向底層幀緩沖區(qū)中寫入幀數(shù)據(jù)。因此通過對(duì)LCD直接相關(guān)的底層幀緩沖區(qū) 的寫入控制,實(shí)現(xiàn)了對(duì)LCD屏幕刷新的控制,具體改進(jìn)如下
在文件aren£i\src\drivers\dil\lcd\dd_lcd_£i2000p_mv8602. c中
把原有的dd_lcd_write函數(shù)的函數(shù)名改為dd_lcd_writeEx 添加整型變量enableRefreshLCD,控制是否允許刷新LCD屏幕 添加新的dd_lCd_Write函數(shù)替代原有的dd_lCd_Write以供其他模塊調(diào)用,使得
只有在允許的時(shí)候才可以調(diào)用dcLlccLwriteEx向底層幀緩沖區(qū)中寫入幀數(shù)據(jù)。dd_lcd_
write函數(shù)實(shí)現(xiàn)如下 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屏幕的開關(guān)接口 dd_lcd_enable_refresh和dd_ lcd_disable_refresh。具體實(shí)現(xiàn)如下
SINT32 dd_lcd_enable_refresh()
{enableRefresh!XD = 1 ;
} SINT32 dd_lcd_disable_refresh()
{enableRefresh!XD = 0 ;
} 這樣屏幕驅(qū)動(dòng)器就可以向顯示管理器提供允許刷新LCD屏幕函數(shù)dd_lcd_ enable—refresh (在此情況下,允許寫數(shù)據(jù)到底層緩沖區(qū))和不允許刷新LCD屏幕函數(shù)dd_ lccLdisable—refresh(在此情況下,不允許寫數(shù)據(jù)到底層緩沖區(qū))。也就是說,本發(fā)明利 用允許刷新屏幕函數(shù)dd_lcd_enable_refresh和不允許刷新屏幕函數(shù)dd_lcd_disable_ refresh對(duì)LCD直接相關(guān)的底層幀緩沖區(qū)的寫入控制,實(shí)現(xiàn)對(duì)LCD屏幕刷新的控制,并向上 層提供相應(yīng)的控制接口。 圖7為本發(fā)明中上層和底層幀緩沖區(qū)關(guān)系示意圖。通過顯示窗口/隱藏窗口 對(duì)UI模塊管理的幀緩沖區(qū)進(jìn)行控制通過調(diào)用顯示窗口函數(shù)ShowWindow (hwnd, SW_ SHOW)使得UI模塊能夠把控制的窗口界面繪制到上層幀緩沖區(qū)中;通過調(diào)用隱藏窗口 函數(shù)ShowWindow (hwnd, SW_HIDE)使得UI模塊不能夠把控制的窗口界面繪制到UI模 塊管理的幀緩沖區(qū)中。在對(duì)底層幀緩沖區(qū)的控制中,通常由操作系統(tǒng)層的顯示管理器 (DisplayManager)通過調(diào)用允許LCD刷新函數(shù)dd_lcd_enable_refresh或者調(diào)用不允許 LCD刷新dd_lCd_disable_refresh來控制是否允許從UI模塊管理的幀緩沖區(qū)寫入數(shù)據(jù)到 底層幀緩沖區(qū)。 圖8是在圖5 圖7所示的具體實(shí)施例上實(shí)現(xiàn)戶界面增強(qiáng)視效的流程圖,圖8所 示的流程包括 步驟801 :UI模塊調(diào)用函數(shù)ShowWindow(hwnd, SW_HIDE),隱藏將要繪制的窗口 ;
步驟802 :系統(tǒng)鎖定UI模塊管理的幀緩沖區(qū)(即,得到UI模塊管理的幀緩沖區(qū)的 指針以便可以讀取或?qū)懭脒@塊幀緩沖區(qū),與此同時(shí),其它線程或進(jìn)程將不能對(duì)這塊幀緩沖區(qū)進(jìn)行讀取或?qū)懭?并把幀緩沖區(qū)的數(shù)據(jù)Wl復(fù)制到數(shù)據(jù)緩存src中; 步驟803 :顯示管理器通過調(diào)用函數(shù)dcLlccLdisable—refresh設(shè)置不允許寫入數(shù)
據(jù)到底層幀緩沖區(qū); 步驟804 :UI模塊通過調(diào)用函數(shù)ShowWindow(hwnd, SW_SH0W)顯示將要繪制的窗 □; 步驟805 :通過UI模塊通過調(diào)用函數(shù)UpdateWindow,把將要顯示的窗口繪制到UI 模塊管理的上層幀幀緩沖區(qū)中; 步驟806 :系統(tǒng)鎖定UI模塊管理的幀緩沖區(qū)并把上層幀緩沖區(qū)的數(shù)據(jù)W2復(fù)制到 數(shù)據(jù)緩存dest中; 步驟807 :系統(tǒng)鎖定UI模塊管理的幀緩沖區(qū)并把數(shù)據(jù)緩存src中的數(shù)據(jù)Wl復(fù)制 到幀緩沖區(qū)中。 步驟808 :顯示管理器通過調(diào)用函數(shù)dd_lcd_enable_refresh()設(shè)置允許寫入數(shù) 據(jù)到底層幀緩沖區(qū); 步驟809 :根據(jù)相應(yīng)的算法(可以是任何動(dòng)畫算法)把緩存src和dest中的數(shù)據(jù) Wl和W2合成視效幀數(shù)據(jù)res ; 步驟810 :鎖定UI模塊管理的幀緩沖區(qū)并且UI模塊把視效幀數(shù)據(jù)res復(fù)制到上 層幀緩沖區(qū)中; 步驟811 :顯示管理器刷新屏幕顯示并等待一段時(shí)間,以便在這段時(shí)間播放視效 幀數(shù)據(jù)res ; 步驟812 :判斷視效動(dòng)畫是否結(jié)束,是結(jié)束;否轉(zhuǎn)到步驟809。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化,本發(fā)明的保護(hù)范圍以權(quán)利要求為準(zhǔn)。
權(quán)利要求
一種用戶界面視效實(shí)現(xiàn)方法,包括以下步驟獲取并保存當(dāng)前窗口界面W1;在不顯示下一窗口的條件下獲取并保存下一窗口界面W2;利用保存的當(dāng)前窗口界面W1和下一窗口界面W2生成過渡動(dòng)畫,并在當(dāng)前窗口與下一窗口之間進(jìn)行播放;顯示過渡動(dòng)畫之后,正常顯示下一窗口界面W2。
2. 根據(jù)權(quán)利要求1所述的方法,所述獲取并保存當(dāng)前窗口界面Wl具體為 將上層幀緩沖區(qū)的當(dāng)前窗口的界面數(shù)據(jù)復(fù)制到第一緩存(src)中,獲取并保存當(dāng)前窗口界面Wl。
3. 根據(jù)權(quán)利要求1所述的方法,所述獲取并保存下一窗口界面W2具體為 控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以禁止寫入數(shù)據(jù); 將下一窗口界面W2的數(shù)據(jù)寫入上層幀緩沖區(qū);將已寫入所述上層幀緩沖區(qū)的界面數(shù)據(jù)復(fù)制到第二緩存(dest)中,從而獲得所述下 一窗口界面W2。
4. 根據(jù)權(quán)利要求3所述的方法,所述禁止寫入數(shù)據(jù)具體為顯示管理器調(diào)用不允許刷新屏幕的函數(shù)(dcLlccLdisable—refresh),禁止將數(shù)據(jù)寫入 下層幀緩沖區(qū)。
5. 根據(jù)權(quán)利要求1所述的方法,所述當(dāng)前窗口界面W1和下一窗口界面W2生成過渡動(dòng) 畫包括控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以允許寫入數(shù)據(jù);將第一緩存src中的當(dāng)前窗口界面Wl數(shù)據(jù)與第二緩存dest中的下一窗口界面W2數(shù) 據(jù)合成為新界面數(shù)據(jù)并將其復(fù)制到上層幀緩沖區(qū);將來自所述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入下層幀緩沖區(qū),使其顯示在屏幕上, 從而得到動(dòng)畫效果。
6. 根據(jù)權(quán)利要求5所述的方法,所述將數(shù)據(jù)寫入下層幀緩沖區(qū)具體為顯示管理器調(diào) 用允許刷新屏幕函數(shù)(dcLlccLenable—refresh),將數(shù)據(jù)寫入下層緩沖區(qū)。
7. —種移動(dòng)終端用戶界面增強(qiáng)視效的裝置,包括窗口保存模塊,用于獲取并保存當(dāng)前窗口界面Wl和下一窗口界面W2 ; 動(dòng)畫生成顯示模塊,用于生成當(dāng)前窗口界面W1和下一窗口界面W2之間的過渡動(dòng)畫并 顯示;窗口顯示模塊,用于顯示當(dāng)前窗口 ,并在顯示過渡動(dòng)畫之后,正常顯示下一窗口界面W2。
8. 根據(jù)權(quán)利要求7所述的裝置,所述窗口保存模塊進(jìn)一步包括將上層幀緩沖區(qū)的當(dāng)前窗口的界面數(shù)據(jù)復(fù)制到第一緩存(src)中,從而獲取并保存當(dāng) 前窗口界面W1。
9. 根據(jù)權(quán)利要求7所述的裝置,所述窗口保存模塊進(jìn)一步包括 控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以禁止寫入數(shù)據(jù); 將下一窗口界面W2的數(shù)據(jù)寫入上層幀緩沖區(qū);將已寫入所述上層幀緩沖區(qū)的界面數(shù)據(jù)復(fù)制到第二緩存(dest)中,從而獲得所述下一窗口界面W2。
10.根據(jù)權(quán)利要求7所述的裝置,所述動(dòng)畫生成顯示模塊進(jìn)一步包括 控制直接關(guān)聯(lián)屏幕的下層幀緩沖區(qū),以允許寫入數(shù)據(jù);將第一緩存src中的當(dāng)前窗口界面Wl數(shù)據(jù)與第二緩存dest中的下一窗口界面W2數(shù) 據(jù)合成為新界面數(shù)據(jù)并將其復(fù)制到上層幀緩沖區(qū);將來自所述上層幀緩沖區(qū)的所述新界面數(shù)據(jù)寫入下層幀緩沖區(qū),使其顯示在屏幕上, 從而得到動(dòng)畫效果。
全文摘要
本發(fā)明公開了一種手機(jī)用戶界面增強(qiáng)視效實(shí)現(xiàn)方法及其裝置,本發(fā)明的方法包括A.獲取并保存當(dāng)前窗口界面W1;B.在不顯示下一窗口的條件下獲取并保存下一窗口界面W2;C.利用保存的當(dāng)前窗口界面W1和下一窗口界面W2生成過渡動(dòng)畫,并在當(dāng)前窗口與下一窗口之間進(jìn)行播放;D.顯示過渡動(dòng)畫之后,正常顯示下一窗口界面W2。本發(fā)明能夠在既不增加硬件成本和軟件成本,也不增加開發(fā)難度和開發(fā)周期的條件下,在這類手機(jī)上實(shí)現(xiàn)用戶界面切換過程中更多的增強(qiáng)視效。
文檔編號(hào)G06F9/48GK101714088SQ20101000010
公開日2010年5月26日 申請(qǐng)日期2010年1月4日 優(yōu)先權(quán)日2010年1月4日
發(fā)明者傅啟洪, 廖海亮, 張芝萍 申請(qǐng)人:中興通訊股份有限公司