欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于同步信號的動畫繪制方法及系統(tǒng)與流程

文檔序號:12176317閱讀:551來源:國知局
一種基于同步信號的動畫繪制方法及系統(tǒng)與流程

本發(fā)明涉及安卓系統(tǒng)技術(shù)領(lǐng)域,特別涉及一種基于同步信號的動畫繪制方法及系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的方案,形形色色的電子設(shè)備越來越受到消費(fèi)者青睞。而在這些電子系統(tǒng)中,安卓(Android)系統(tǒng)是使用最為廣泛的一種系統(tǒng)。安卓系統(tǒng)在繪制動畫時普遍采用基于時間的插值方法進(jìn)行動畫插值。所述基于時間的插值方法指的是在系統(tǒng)內(nèi)按照相同的時間間隔進(jìn)行均勻插值。但是,所述基于時間的插值方法,當(dāng)系統(tǒng)出現(xiàn)卡頓時,系統(tǒng)內(nèi)運(yùn)行的插值操作也會相應(yīng)的出現(xiàn)卡頓不能均勻插值,而使得顯示給用戶的畫面出現(xiàn)卡頓的問題。

因而現(xiàn)有技術(shù)還有待改進(jìn)和提高。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的不足,提供一種基于同步信號的動畫繪制方法,以解決現(xiàn)有動畫繪制中采用基于時間插值方法存在的由于系統(tǒng)出現(xiàn)卡頓而產(chǎn)生的插值不均勻,使得顯示給用戶的畫面出現(xiàn)卡頓的問題。

為了解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案如下:

一種基于同步信號的動畫繪制方法,其包括:

當(dāng)接收到繪制動畫的指令時,通過Choreographer模塊監(jiān)聽系統(tǒng)的同步信號,其中,所述同步信號為系統(tǒng)進(jìn)行動畫渲染時顯示器的刷新信號;

當(dāng)監(jiān)聽到所述同步信號時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作。

所述基于同步信號的動畫繪制方法,其中,所述當(dāng)接收到繪制動畫的指令時,通過Choreographer模塊監(jiān)聽系統(tǒng)的同步信號之前包括:

當(dāng)檢測到終端設(shè)備啟動應(yīng)用程序時,獲取Android系統(tǒng)的Choreographer模塊,并將所述Choreographer模塊配置于所述應(yīng)用的主線程消息列隊。

所述基于同步信號的動畫繪制方法,其中,所述當(dāng)監(jiān)聽到所述同步信號時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作之后還包括:

獲取所述當(dāng)前插值操作與上一次插值操作的時間間隔,并將所述時間間隔與預(yù)設(shè)時間段進(jìn)行比較;

當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)插值操作。

所述基于同步信號的動畫繪制方法,其中,所述當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)插值操作具體為:

當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,根據(jù)預(yù)設(shè)預(yù)設(shè)時間段與插值次數(shù)的對應(yīng)關(guān)系確定進(jìn)行插值的次數(shù);

調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)的插值。

所述基于同步信號的動畫繪制方法,其中,所述FrameCallback接口預(yù)設(shè)配置循環(huán)插值操作指令。

一種基于同步信號的動畫繪制系統(tǒng),其包括:

監(jiān)聽模塊,用于當(dāng)接收到繪制動畫的指令時,通過Choreographer模塊監(jiān)聽系統(tǒng)的同步信號,其中,所述同步信號為顯示器刷新所產(chǎn)生的信號;

插值模塊,用于當(dāng)監(jiān)聽到所述同步信號時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作。

所述基于同步信號的動畫繪制系統(tǒng),其還包括:

獲取模塊,用于當(dāng)檢測到終端設(shè)備啟動應(yīng)用程序時,獲取Android系統(tǒng)的Choreographer模塊,并將所述Choreographer模塊配置于所述應(yīng)用的主線程消息列隊。

所述基于同步信號的動畫繪制系統(tǒng),其還包括:

比較模塊,用于獲取所述當(dāng)前插值操作與上一次插值操作的時間間隔,并將所述時間間隔與預(yù)設(shè)時間段進(jìn)行比較;

第二插值模塊,用于當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)插值操作。

所述基于同步信號的動畫繪制系統(tǒng),其中,所述第二插值模塊具體包括:

確定單元,用于當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,根據(jù)預(yù)設(shè)預(yù)設(shè)時間段與插值次數(shù)的對應(yīng)關(guān)系確定進(jìn)行插值的次數(shù);

插值單元,用于調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)的插值。

所述基于同步信號的動畫繪制系統(tǒng),其中,所述FrameCallback接口預(yù)設(shè)配置循環(huán)插值操作指令。

有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種基于同步信號的動畫繪制方法及系統(tǒng),所述方法包括:當(dāng)接收到繪制動畫的指令時,通過Choreographer模塊監(jiān)聽系統(tǒng)的同步信號,其中,所述同步信號為系統(tǒng)進(jìn)行動畫渲染時顯示器的刷新信號;當(dāng)監(jiān)聽到所述同步信號時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作。本發(fā)明通過基于顯示器刷新的同步信號進(jìn)行插值操作,當(dāng)系統(tǒng)卡頓時,系統(tǒng)仍然發(fā)送同步信息,系統(tǒng)根據(jù)所述同步信息進(jìn)行插值操作,避免了由于系統(tǒng)出現(xiàn)卡頓而產(chǎn)生的插值不均勻,使得顯示給用戶的畫面出現(xiàn)卡頓的問題。

附圖說明

圖1為本發(fā)明提供的基于同步信號的動畫繪制較佳實(shí)施的流程圖。

圖2為本發(fā)明提供的基于同步信號的動畫繪制系統(tǒng)的結(jié)構(gòu)原理圖。

具體實(shí)施方式

本發(fā)明提供一種基于同步信號的動畫繪制方法及系統(tǒng),為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下參照附圖并舉實(shí)施例對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,模塊”、“部件”或“單元”可以混合地使用。

本發(fā)明所述方法可以用于具有Android系統(tǒng)的終端設(shè)備,所述終端設(shè)備可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動終端以及諸如數(shù)字TV、臺式計算機(jī)等等的固定終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。

下面結(jié)合附圖,通過對實(shí)施例的描述,對發(fā)明內(nèi)容作進(jìn)一步說明。

請參照圖1,圖1為本發(fā)明提供的基于同步信號的動畫繪制方法的較佳實(shí)施例的流程圖。所述方法包括:

S100、當(dāng)接收到繪制動畫的指令時,通過Choreographer模塊監(jiān)聽系統(tǒng)的同步信號,其中,所述同步信號為系統(tǒng)進(jìn)行動畫渲染時顯示器的刷新信號。

具體地,所述Choreographer模塊為一個消息處理器,用于根據(jù)同步信號(vsync,vertical synchronization)執(zhí)行回調(diào)算法。所述回調(diào)算法包括事件回調(diào)方法、動畫回調(diào)方法和繪制回調(diào)方法。在本實(shí)施例中,當(dāng)加入動畫時將加入動畫的動作發(fā)送給Choreographer模塊,Choreographer模塊根據(jù)加入動畫的動作開啟接收同步信息。其中,所述同步信號vsync與顯示器的幀數(shù)同步,也就是說所述同步信號為顯示器刷新所產(chǎn)生的信號。

所述當(dāng)接收到繪制動畫的指令時值得是終端設(shè)備啟動動畫繪制功能,例如,啟動需要繪制動畫的應(yīng)用APP、終端本身需要繪制動畫等。

在本實(shí)施例中,由于終端設(shè)備裝載的APP不能直接調(diào)用系統(tǒng)的Choreographer模塊,從而在終端設(shè)備啟動APP時包括一個調(diào)用步驟,具體可以為:

當(dāng)終端設(shè)備啟動時,監(jiān)聽終端設(shè)備啟動應(yīng)用程序操作;

當(dāng)監(jiān)聽到終端設(shè)備啟動應(yīng)用程序的操作時,獲取系統(tǒng)的Choreographer模塊,并將所述Choreographer模塊配置于所述應(yīng)用的主線程消息列隊。

具體地,當(dāng)終端設(shè)備啟動時,在終端啟動的所有應(yīng)用的主線程消息列隊中添加所述Choreographer模塊,用于當(dāng)應(yīng)用程序進(jìn)行動畫繪制時通過Choreographer模塊接收同步信號,根據(jù)所述同步信息進(jìn)行動畫插值。這樣可以保證終端設(shè)備安裝的所用應(yīng)用程序動畫插值與顯示器的幀數(shù)同步,避免了由于系統(tǒng)出現(xiàn)卡頓而產(chǎn)生的插值不均勻,使得顯示給用戶的畫面出現(xiàn)卡頓的問題。

S200、當(dāng)監(jiān)聽到所述同步信號時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作。

具體地,所述FrameCallback接口為Choreographer模塊提供的提供的回調(diào)方法類;用于根據(jù)同步信號采用回調(diào)方法進(jìn)行動畫插值。也就是說,當(dāng)接收到同步信號時,通過Choreographer模塊的FrameCallback接口,根據(jù)同步信號采用回調(diào)方法進(jìn)行動畫插值。所述回調(diào)方法是采用安卓系統(tǒng)的消息機(jī)制,即提前將所述回調(diào)方法設(shè)置給應(yīng)用的主線程的消息隊列,當(dāng)接收同步信號時,回調(diào)所述FrameCallback接口。

所述FrameCallback接口預(yù)設(shè)配置循環(huán)插值操作指令,來實(shí)現(xiàn)多少插值,解決所述FrameCallback配置所述回調(diào)方法時僅能進(jìn)行一次插值操作,不能重復(fù)調(diào)用多次才可插值完成的問題。在本實(shí)施例中,所述FrameCallback接口用遞歸的方式,即在FrameCallback中再配置一個FrameCallback,實(shí)現(xiàn)FrameCallback接口的循環(huán)配置,這樣就保證了當(dāng)插值沒有完成時循環(huán)不退出,實(shí)現(xiàn)了重復(fù)調(diào)用FrameCallback接口,實(shí)現(xiàn)動畫繪制過程中的多次插值操作。

由于在調(diào)用FrameCallback接口時可能存在延遲或者漏調(diào)用的問題,從而在調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作之后還可以包括:記錄所述當(dāng)前插值繪制的時間,判斷預(yù)設(shè)時間內(nèi)是否進(jìn)行下一次插值操作,若預(yù)設(shè)時間內(nèi)未進(jìn)行下一次插值操作,則進(jìn)行鉗位處理。

具體地,所述預(yù)設(shè)時間可以顯示器刷新時間差,即顯示器的上一幀與當(dāng)前幀的時間差,也可以是大于顯示器刷新時間差,如50毫秒,60毫秒等。在本實(shí)施例中,所述預(yù)設(shè)時間段可以為60毫秒。而在安卓系統(tǒng)中顯示器刷新的幀頻一般為60Hz,那么上一幀與當(dāng)前幀的時間差為16.6毫秒。從而,在進(jìn)行一次動畫繪制后,獲取所述當(dāng)前插值操作與上一次插值操作的時間間隔,并將所述時間間隔與預(yù)設(shè)時間段進(jìn)行比較;當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)插值操作。避免了由于FrameCallback接口時可能存在延遲或者漏調(diào)用,而產(chǎn)生的動畫卡頓,給用戶使用帶來不變。

示例性的,所述獲取所述當(dāng)前插值操作與上一次插值操作的時間間隔具體可以為當(dāng)進(jìn)行當(dāng)前插值操作后,啟動配置預(yù)設(shè)時間段的計時器,當(dāng)計時器超時時,接收到同步信號時,控制FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)的插值操作。

所述預(yù)設(shè)次數(shù)為根據(jù)所述預(yù)設(shè)時間段預(yù)先設(shè)置的,如當(dāng)預(yù)設(shè)時間段為60毫秒時,所述預(yù)設(shè)次數(shù)可以為3。也就是說,當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行3數(shù)插值操作。從而,所述當(dāng)所述當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)插值操作具體為:當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,根據(jù)預(yù)設(shè)預(yù)設(shè)時間段與插值次數(shù)的對應(yīng)關(guān)系確定進(jìn)行插值的次數(shù);調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)的插值。這樣可以避免由于FrameCallback接口的漏調(diào)等原因產(chǎn)生的插值不均勻或者卡頓問題。

本發(fā)明還提供了一種基于同步信號的動畫繪制系統(tǒng),如圖2所示,其包括:

監(jiān)聽模塊100,用于當(dāng)接收到繪制動畫的指令時,通過Choreographer模塊監(jiān)聽系統(tǒng)的同步信號,其中,所述同步信號為顯示器刷新所產(chǎn)生的信號;

插值模塊200,用于當(dāng)監(jiān)聽到所述同步信號時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行插值操作。

所述基于同步信號的動畫繪制系統(tǒng),其還包括:

獲取模塊,用于當(dāng)檢測到終端設(shè)備啟動應(yīng)用程序時,獲取Android系統(tǒng)的Choreographer模塊,并將所述Choreographer模塊配置于所述應(yīng)用的主線程消息列隊。

所述基于同步信號的動畫繪制系統(tǒng),其還包括:

比較模塊,用于獲取所述當(dāng)前插值操作與上一次插值操作的時間間隔,并將所述時間間隔與預(yù)設(shè)時間段進(jìn)行比較;

第二插值模塊,用于當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)插值操作。

所述基于同步信號的動畫繪制系統(tǒng),其中,所述第二插值模塊具體包括:

確定單元,用于當(dāng)所述時間間隔大于所述預(yù)設(shè)時間段時,根據(jù)預(yù)設(shè)預(yù)設(shè)時間段與插值次數(shù)的對應(yīng)關(guān)系確定進(jìn)行插值的次數(shù);

插值單元,用于調(diào)用Choreographer模塊的FrameCallback接口進(jìn)行預(yù)設(shè)次數(shù)的插值。

所述基于同步信號的動畫繪制系統(tǒng),其中,所述FrameCallback接口預(yù)設(shè)配置循環(huán)插值操作指令。

在本發(fā)明所提供的實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。

上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個實(shí)施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(Read-Only Memory,ROM)、隨機(jī)存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
华阴市| 会泽县| 马龙县| 湘西| 台北县| 南丹县| 蓬溪县| 建宁县| 扬州市| 新和县| 蒙阴县| 琼海市| 江孜县| 林芝县| 库车县| 阿尔山市| 淮北市| 潞城市| 大埔区| 永顺县| 唐海县| 江华| 大厂| 烟台市| 渭南市| 石门县| 陆良县| 涟源市| 永兴县| 台北市| 西峡县| 连平县| 铁岭县| 山阳县| 漳平市| 安西县| 叙永县| 宜阳县| 静海县| 民乐县| 昆明市|