国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Android系統(tǒng)的GIF動畫播放方法及裝置與流程

      文檔序號:11063351閱讀:354來源:國知局
      基于Android系統(tǒng)的GIF動畫播放方法及裝置與制造工藝

      本發(fā)明涉及計算機(jī)移動通信技術(shù)領(lǐng)域,具體而言,涉及一種基于Android系統(tǒng)的GIF動畫播放方法及裝置。



      背景技術(shù):

      GIF(Graphics Interchange Format,圖像互換格式)分為靜態(tài)GIF和動畫GIF兩種,擴(kuò)展名為.gif,是一種壓縮位圖格式,支持透明背景圖像,適用于多種操作系統(tǒng),“體型”很小,網(wǎng)絡(luò)上很多小動畫都是GIF格式。其實GIF動畫是將多幅圖像保存為一個圖像文件,從而形成動畫,最常見的就是通過一幀幀的GIF圖串聯(lián)起來的GIF動畫,所以歸根到底GIF仍然是圖片文件格式。

      但是,Android系統(tǒng)中的圖形基類view及其子類是不能通過設(shè)置drawable的方式播放GIF動畫的,現(xiàn)有的實現(xiàn)GIF動畫播放的應(yīng)用(app)大都引用了第三方提供的開源包,這勢必會增加程序安裝包的大小。

      因此,在Android系統(tǒng)中,如何在不顯著增加程序安裝包大小的基礎(chǔ)上還能夠?qū)崿F(xiàn)GIF動畫的播放,成為現(xiàn)在亟待解決的問題。



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

      本發(fā)明的目的在于提供一種基于Android系統(tǒng)的GIF動畫播放方法及裝置以解決現(xiàn)有技術(shù)中引用第三方提供的開源包增加程序安裝包大小的問題。

      為了實現(xiàn)上述目的,本發(fā)明實施例采用的技術(shù)方案如下:

      第一方面,本發(fā)明實施例提供了一種基于Android系統(tǒng)的GIF動畫播放方法,包括:調(diào)用Android系統(tǒng)movie類的duration函數(shù), 獲取GIF動畫的時長;如果獲取的時長大于0,則使用繼承于Android系統(tǒng)的圖形基類View的GifView控件播放所述GIF動畫資源;如果獲取的時長小于或等于0,則將所述GIF動畫資源嵌入到html源碼中,使用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,以實現(xiàn)GIF動畫的播放。

      進(jìn)一步的,所述獲取GIF動畫的時長之前可以包括:分別創(chuàng)建繼承于Android系統(tǒng)的圖形基類View的GifView控件以及繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件。

      進(jìn)一步的,所述使用繼承于Android系統(tǒng)的圖形基類View的GifView控件播放所述GIF動畫資源,可以包括:計算待顯示的動畫幀數(shù)T4,T4=(T1-T2)/T3,其中,T1為所述Android系統(tǒng)的當(dāng)前運行時間,T2為所述GIF動畫的開始播放時間,T3為所述GIF動畫的時長;將所述待顯示的動畫幀數(shù)T4對應(yīng)的畫面渲染到播放所述GIF動畫資源的圖形容器中。

      進(jìn)一步的,所述將所述待顯示的動畫幀數(shù)T4對應(yīng)的畫面渲染到播放所述GIF動畫資源的圖形容器中之前,可以包括:根據(jù)所述GifView控件展示的區(qū)域,對所述圖形容器進(jìn)行縮小或放大處理。

      進(jìn)一步的,所述獲取GIF動畫的時長之前,還可以包括:將所述GIF動畫的開始播放時間T2初始化為0;將所述Android系統(tǒng)的當(dāng)前運行時間T1賦值給所述GIF動畫的開始播放時間T2。

      進(jìn)一步的,所述將GIF動畫資源嵌入到html源碼中,可以包括:將所述GIF動畫資源的讀取路徑,所述GIF動畫資源的播放寬度以及播放高度嵌入到html源碼中。

      第二方面,本發(fā)明實施例還提供了一種基于Android系統(tǒng)的GIF動畫播放裝置,運行于安裝有Android系統(tǒng)的終端設(shè)備,所述裝置包括:調(diào)用模塊、第一播放模塊、第二播放模塊:所述調(diào)用模塊用于調(diào)用Android系統(tǒng)movie類的duration函數(shù),獲取GIF動畫的時長;如果獲取的時長大于0,所述第一播放模塊用于使用繼承于Android系統(tǒng)的圖形基類View的GifView控件播放所述GIF動畫資源;如果獲取的時長小于或等于0,所述第二播放模塊用于將所述GIF動畫資源嵌入到html源碼中,使用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,以實現(xiàn)GIF動畫的播放。

      進(jìn)一步的,所述裝置還可以包括創(chuàng)建模塊,用于分別創(chuàng)建繼承于Android系統(tǒng)的圖形基類View的GifView控件以及繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件。

      進(jìn)一步的,所述第一播放模塊可以包括:計算單元,用于計算待顯示的動畫幀數(shù)T4,T4=(T1-T2)/T3,其中,T1為所述Android系統(tǒng)的當(dāng)前運行時間,T2為所述GIF動畫的開始播放時間,T3為所述GIF動畫的時長;渲染單元,用于將所述待顯示的動畫幀數(shù)T4對應(yīng)的畫面渲染到播放所述GIF動畫資源的圖形容器中。

      進(jìn)一步的,所述第一播放模塊還可以包括:縮放單元,用于根據(jù)所述GifView控件展示的區(qū)域,對所述圖形容器進(jìn)行縮小或放大處理。

      進(jìn)一步的,所述裝置還可以包括:初始化模塊,用于如果所述GIF動畫的開始播放時間T2為0,將所述Android系統(tǒng)的當(dāng)前運行時間T1賦值給所述GIF動畫的開始播放時間T2。

      進(jìn)一步的,所述第二播放模塊還可以用于:將所述GIF動畫資源的讀取路徑,所述GIF動畫資源的播放寬度以及播放高度嵌入到html源碼中。

      本發(fā)明實施例提供的基于Android系統(tǒng)的GIF動畫播放方法和裝置,當(dāng)獲取的動畫時長大于0時,也就是可以使用GifView控件正常播放時,使用GifView控件播放所述GIF動畫資源,內(nèi)存消耗較小,當(dāng)獲取的動畫時長小于或等于0時,也就是使用GifView控件無法播放時,使用GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,這樣可以保證GIF動畫能夠繼續(xù)正常播放。本發(fā)明實施例提供的基于Android系統(tǒng)的GIF動畫播放方法和裝置,一方面可以基于Android系統(tǒng)原生工具實現(xiàn)GIF動畫播放,不需要引入額外的第三方提供的開源包,有效控制了程序安裝包的大小,實現(xiàn)在不顯著增加程序安裝包大小的基礎(chǔ)上實現(xiàn)GIF動畫的正常播放,另一方面,利用GifView控件和GifWebView控件優(yōu)勢互補(bǔ)的實現(xiàn)了較好的GIF動畫播放效果。

      為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細(xì)說明如下。

      附圖說明

      為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。

      圖1示出了本發(fā)明實施例提供的用戶終端的結(jié)構(gòu)框圖;

      圖2示出了本發(fā)明第一實施例提供的一種基于Android系統(tǒng)的GIF動畫播放方法的流程示意圖;

      圖3示出了本發(fā)明第二實施例提供的一種基于Android系統(tǒng)的GIF動畫播放方法在一種情況下的流程示意圖;

      圖4示出了本發(fā)明第二實施例提供的一種基于Android系統(tǒng)的GIF動畫播放方法在另一種情況下的流程示意圖;

      圖5示出了本發(fā)明第三實施例提供的一種基于Android系統(tǒng)的GIF動畫播放裝置的結(jié)構(gòu)框圖;

      圖6示出了本發(fā)明第三實施例提供的一種基于Android系統(tǒng)的GIF動畫播放裝置中部分模塊的結(jié)構(gòu)框圖;

      圖7示出了本發(fā)明第四實施例提供的一種基于Android系統(tǒng)的GIF動畫播放裝置的結(jié)構(gòu)框圖。

      具體實施方式

      本發(fā)明實施例所提供的基于Android系統(tǒng)的GIF動畫播放方法及裝置可應(yīng)用于如圖1所示的終端設(shè)備100中終端設(shè)備100。于本發(fā)明實施例中,終端設(shè)備100優(yōu)選為安裝有Android系統(tǒng)移動終端設(shè)備,例如可以包括智能手機(jī)、平板電腦、電子書閱讀器、膝上型便攜計算機(jī)、車載電腦、穿戴式移動終端等等。

      圖1示出了一種可應(yīng)用于本發(fā)明實施例中的用戶終端的結(jié)構(gòu)框圖。如圖1所示,終端設(shè)備100包括存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理器106、外設(shè)接口108、射頻模塊110、音頻模塊112、觸控屏幕114等。這些組件通過一條或多條通訊總線/信號線116相互通訊。

      存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的基于Android系統(tǒng)的GIF動畫播放方法及裝置對應(yīng)的程序指令/ 模塊,處理器106通過運行存儲在存儲器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,如本發(fā)明實施例提供的基于Android系統(tǒng)的GIF動畫播放方法。

      存儲器102可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進(jìn)行。

      外設(shè)接口108將各種輸入/輸入裝置耦合至處理器106以及存儲器102。在一些實施例中,外設(shè)接口108,處理器106以及存儲控制器104可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。

      射頻模塊110用于接收以及發(fā)送電磁波,實現(xiàn)電磁波與電信號的相互轉(zhuǎn)換,從而與通訊網(wǎng)絡(luò)或者其他設(shè)備進(jìn)行通訊。

      音頻模塊112向用戶提供音頻接口,其可包括一個或多個麥克風(fēng)、一個或者多個揚聲器以及音頻電路。

      觸控屏幕114在終端設(shè)備100與用戶之間同時提供一個輸出及輸入界面。

      可以理解,圖1所示的結(jié)構(gòu)僅為示意,終端設(shè)備100還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。圖1中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。

      本發(fā)明實施例提出的基于Android系統(tǒng)的GIF動畫播放方法和裝置,提供了一種基于Android系統(tǒng)原生工具實現(xiàn)GIF動畫播放的方案,不需要引入額外的第三方提供的開源包,可以有效控制程序安裝包的大小。

      在發(fā)明實施例提供的方案中,創(chuàng)建了兩個控件,一個是繼承于Android系統(tǒng)的圖形基類View的GifView控件,另一個是繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件,并將這兩個控件結(jié)合使用。利用GifView控件和GifWebView控件優(yōu)勢互補(bǔ)的實現(xiàn)了較好的GIF動畫播放效果。

      具體的,在本發(fā)明實施例中,利用Android系統(tǒng)提供的原生工具movie類,將movie類與Android系統(tǒng)中的圖形基類view結(jié)合在一起。自定義GifView控件繼承于View,將movie對象以組合的方式添加到GifView中,以時間軸為依據(jù),通過自繪的方式可以實現(xiàn)GIF動畫播放。使用GifView控件實現(xiàn)GIF動畫的播放內(nèi)存消耗較小,但是在處理不同編碼格式的GIF圖片時,這種方法存在一些兼容性的問題,會導(dǎo)致GIF動畫無法播放。

      Android系統(tǒng)還提供了原生的工具網(wǎng)絡(luò)視圖組件WebView,構(gòu)建繼承于網(wǎng)絡(luò)視圖組件WebView的GifWebView控件,通過加載html頁面的形式實現(xiàn)GIF動畫播放。在加載html頁面前,將GIF動畫資源嵌入到一段html源碼中。使用GifWebView控件播放GIF動畫,幾乎不存在播放的情況,但是內(nèi)存開銷比較大,特別是播放多個GIF動畫時,比較容易出現(xiàn)OutOfMemory(內(nèi)存不足)的異常情況。

      本發(fā)明實施例提供的方案中,只有在當(dāng)通過調(diào)用Android系統(tǒng)movie類的duration函數(shù)獲取的動畫時長(也就是動畫的總時長)小于或等于0時,也就是獲取失敗、使用GifView控件無法播放時,才使用GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,這樣可以既可以保證GIF動畫能夠正常播放,又不會過多的消耗內(nèi)存。

      下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。

      第一實施例

      圖2示出了本發(fā)明第一實施例提供的一種基于Android系統(tǒng)的GIF動畫播放方法的流程圖,請參閱圖2,所述方法包括:

      步驟S110,調(diào)用Android系統(tǒng)movie類的duration函數(shù),獲取GIF動畫的時長;

      如果獲取的時長大于0,則執(zhí)行步驟S120,使用繼承于Android系統(tǒng)的圖形基類View的GifView控件播放所述GIF動畫資源;

      如果獲取的時長小于或等于0,則執(zhí)行步驟S130,將所述GIF動畫資源嵌入到html源碼中,使用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,以實現(xiàn)GIF動畫的播放。

      具體的,在步驟S120中,可以根據(jù)公式T4=(T1-T2)/T3計算待顯示的動畫幀數(shù)T4,其中,T1為所述Android系統(tǒng)的當(dāng)前運行時間,T2為所述GIF動畫的開始播放時間,T3為所述GIF動畫的時長;將所述待顯示的動畫幀數(shù)T4對應(yīng)的畫面渲染到播放所述GIF動畫資源的圖形容器中。

      根據(jù)所述GifView控件展示的區(qū)域,對所述圖形容器進(jìn)行縮小或放大處理。

      在步驟S130中,利用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件播放GIF動畫。創(chuàng)建繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件,通過加載html頁面的形式實現(xiàn)GIF動畫播放。

      在加載html頁面前,需要將所述GIF動畫資源的讀取路徑,所述GIF動畫資源的播放寬度以及播放高度嵌入到一段html源碼中,使用GifWebView加載該段html源碼的方式,從而達(dá)到播放GIF動畫的目的。

      該段html源碼可以如下所示:

      其中,$path為所述GIF動畫資源的讀取路徑,$width為GIF動畫資源的播放寬度,$height為GIF動畫資源的播放高度。

      本實施例提供的基于Android系統(tǒng)的GIF動畫播放方法,當(dāng)獲取的動畫時長大于0時,也就是可以使用GifView控件正常播放時,使用GifView控件播放所述GIF動畫資源,內(nèi)存消耗較小,當(dāng)獲取的動畫時長小于或等于0時,也就是使用GifView控件無法播放時, 使用GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,這樣可以保證GIF動畫能夠繼續(xù)正常播放。一方面可以基于Android系統(tǒng)原生工具實現(xiàn)GIF動畫播放,不需要引入額外的第三方提供的開源包,有效控制了程序安裝包的大小,實現(xiàn)在不顯著增加程序安裝包大小的基礎(chǔ)上實現(xiàn)GIF動畫的正常播放,另一方面,利用GifView控件和GifWebView控件優(yōu)勢互補(bǔ)的實現(xiàn)了較好的GIF動畫播放效果。

      第二實施例

      圖3及圖4示出了本發(fā)明第二實施例提供的一種基于Android系統(tǒng)的GIF動畫播放方法的流程圖。請參閱圖3及圖4,所述方法包括:

      步驟S210,獲取終端設(shè)備的Android系統(tǒng)的當(dāng)前運行時間T1;

      步驟S220,判斷GIF動畫的開始播放時間T2是否小于或等于0,如果小于或等于0,則執(zhí)行步驟S230后再執(zhí)行步驟S240,否則,直接執(zhí)行步驟S240;

      步驟S230,將所述Android系統(tǒng)的當(dāng)前運行時間T1賦值給所述GIF動畫的開始播放時間T2;

      開始播放時間T2小于或等于0,也就是待顯示的動畫幀數(shù)T4為1,將系統(tǒng)的當(dāng)前運行時間T1賦值給T2,記錄開始播放時間,完成初始化。

      步驟S240,調(diào)用Android系統(tǒng)movie類的duration函數(shù),獲取GIF動畫的時長T3;如果獲取的時長大于0,則執(zhí)行步驟S250至步驟S280,如果獲取的時長小于或等于0,則執(zhí)行步驟S290。

      步驟S250,根據(jù)公式T4=(T1-T2)/T3計算待顯示的動畫幀數(shù)T4;

      步驟S260,根據(jù)所述GifView控件展示的區(qū)域,對圖形容器canvas進(jìn)行縮小或放大處理;

      步驟S270,將所述待顯示的動畫幀數(shù)T4對應(yīng)的畫面渲染到播放所述GIF動畫資源的圖形容器canvas中;

      步驟S280,調(diào)用invalidate函數(shù)進(jìn)行自繪,返回步驟S210直到繪制完最后一幀。

      步驟S290,將GIF動畫資源嵌入到html源碼中,使用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,以實現(xiàn)GIF動畫的播放。

      在使用GifWebView控件前先將GifView控件由Android系統(tǒng)的控件樹上移除,再將GifWebView控件添加到控件樹上。

      需要說明的是,步驟S250至步驟S280實質(zhì)上就是在使用GifView控件播放所述GIF動畫資源的過程。

      由于獲取的時長T3小于或等于0,也就是獲取失敗的情況,通常發(fā)生在第一次獲取時長時,這種情況下,采用GifWebView控件播放GIF動畫可以避免播放失??;一旦獲取成功,獲取的時長T3就是一個大于0的固定值,這種情況下,使用GifView控件播放GIF動畫資源,可以減小內(nèi)存消耗。

      第三實施例

      圖5示出了本發(fā)明第三實施例提供的一種基于Android系統(tǒng)的GIF動畫播放裝置的結(jié)構(gòu)框圖,請參閱圖5,本實施例中的裝置可運行于終端設(shè)備100,本實施例中的裝置30包括:調(diào)用模塊31、第一播放模塊32、第二播放模塊33。

      其中,所述調(diào)用模塊31用于獲取GIF動畫的時長;

      如果獲取的時長大于0,所述第一播放模塊32用于使用繼承于Android系統(tǒng)的圖形基類View的GifView控件播放所述GIF動畫資源;

      如果獲取的時長小于或等于0,所述第二播放模塊33用于將所述GIF動畫資源嵌入到html源碼中,使用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,以實現(xiàn)GIF動畫的播放。

      請參照圖6,所述第一播放模塊32,包括:

      計算單元321,用于計算待顯示的動畫幀數(shù)T4,T4=(T1-T2)/T3,其中,T1為所述Android系統(tǒng)的當(dāng)前運行時間,T2為所述GIF動畫的開始播放時間,T3為所述GIF動畫的時長;

      渲染單元322,用于將所述待顯示的動畫幀數(shù)T4對應(yīng)的畫面渲染到播放所述GIF動畫資源的圖形容器中。

      第一播放模塊32還可以包括縮放單元323,用于根據(jù)所述GifView控件展示的區(qū)域,對所述圖形容器進(jìn)行縮小或放大處理。

      所述第二播放模塊33還可以用于:將所述GIF動畫資源的讀取路徑,所述GIF動畫資源的播放寬度以及播放高度嵌入到html源碼中。

      第四實施例

      圖7示出了本發(fā)明第四實施例提供的基于Android系統(tǒng)的GIF動畫播放裝置的結(jié)構(gòu)框圖,請參照圖7,本實施例中的裝置可運行于終端設(shè)備100,本實施例中的裝置40包括:創(chuàng)建模塊41、初始化模塊42、調(diào)用模塊31、第一播放模塊32、第二播放模塊33。

      所述創(chuàng)建模塊41用于分別創(chuàng)建繼承于Android系統(tǒng)的圖形基類View的GifView控件以及繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件;

      所述初始化模塊42用于如果所述GIF動畫的開始播放時間T2為0,將所述Android系統(tǒng)的當(dāng)前運行時間T1賦值給所述GIF動畫的開始播放時間T2;

      所述調(diào)用模塊31用于獲取GIF動畫的時長;

      如果獲取的時長大于0,所述第一播放模塊32用于使用繼承于Android系統(tǒng)的圖形基類View的GifView控件播放所述GIF動畫資源;

      如果獲取的時長小于或等于0,所述第二播放模塊33用于將所述GIF動畫資源嵌入到html源碼中,使用繼承于Android系統(tǒng)的網(wǎng)絡(luò)視圖組件WebView的GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,以實現(xiàn)GIF動畫的播放。

      本實施例中的各單元可以是由軟件代碼實現(xiàn),此時,上述的各單元可存儲于終端設(shè)備100的存儲器102內(nèi)。以上各單元同樣可以由硬件例如集成電路芯片實現(xiàn)。

      綜上所述,本發(fā)明實施例提供的基于Android系統(tǒng)的GIF動畫播放方法和裝置,當(dāng)獲取的動畫時長大于0時,也就是可以使用GifView控件正常播放時,使用GifView控件播放所述GIF動畫資源,內(nèi)存消耗較小,當(dāng)獲取的動畫時長小于或等于0時,也就是使用GifView控件無法播放時,使用GifWebView控件加載嵌入有所述GIF動畫資源的所述html源碼,這樣可以保證GIF動畫能夠繼續(xù)正常播放。本發(fā)明實施例提供的基于Android系統(tǒng)的GIF動畫播放方法和裝置,一方面可以基于Android系統(tǒng)原生工具實現(xiàn)GIF動 畫播放,不需要引入額外的第三方提供的開源包,有效控制了程序安裝包的大小,實現(xiàn)在不顯著增加程序安裝包大小的基礎(chǔ)上實現(xiàn)GIF動畫的正常播放,另一方面,利用GifView控件和GifWebView控件優(yōu)勢互補(bǔ)的實現(xiàn)了較好的GIF動畫播放效果。

      需要說明的是,本說明書中的各個實施例均采用遞進(jìn)的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。

      本發(fā)明實施例所提供的基于Android系統(tǒng)的GIF動畫播放裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應(yīng)內(nèi)容。

      另外,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。

      本發(fā)明實施例所提供的計算機(jī)程序產(chǎn)品,包括存儲了程序代碼的計算機(jī)可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。

      所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。

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

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

      另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。

      所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本 發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機(jī)存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

      需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。

      以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1