教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

Android培訓(xùn)之幀動(dòng)畫(huà)

更新時(shí)間:2016年06月30日13時(shí)08分 來(lái)源:Android培訓(xùn) 瀏覽次數(shù):

Android之幀動(dòng)畫(huà)
在Android中有兩種動(dòng)畫(huà),分別是幀動(dòng)畫(huà)(即也稱(chēng)為Drawable Animation,F(xiàn)ram Animation)和補(bǔ)間動(dòng)畫(huà)。幀動(dòng)畫(huà)的實(shí)現(xiàn)過(guò)程就是將一組圖片,在極短的時(shí)間內(nèi)快速的播放,從而達(dá)到動(dòng)畫(huà)的效果。下面我們通過(guò)一個(gè)DEMO來(lái)講述幀動(dòng)畫(huà)的編寫(xiě),具體步驟如下:

1.新建工程

【File】à【new】à【Android Application Project】命名為:09_幀動(dòng)畫(huà)

2.新建一組圖片

在新建工程的資源目錄下新建一個(gè)文件夾,命名為:drawable。然后將提前準(zhǔn)備好的圖片添加到這個(gè)文件夾下,如圖1-1所示:

圖1-1所示
圖1-1中添加了組成動(dòng)畫(huà)的一系列靜態(tài)的圖片。

3.編寫(xiě)xml文件

我們已經(jīng)導(dǎo)入了組成動(dòng)畫(huà)的靜態(tài)圖片,接下來(lái)的工作就是編寫(xiě)一個(gè)xml文件,并在該文件中定義動(dòng)畫(huà)的實(shí)現(xiàn)。在drawable文件夾下新建一個(gè)xml文件,命名為:girl.xml,查看該xml文件,代碼如例1-1:
例1-1

由例1-1可知:系統(tǒng)自動(dòng)生成了該xml文件的首行和根節(jié)點(diǎn)<animation-list>,我們需要做的就是在根節(jié)點(diǎn)下定義一系列對(duì)應(yīng)圖片資源。代碼如例1-2所示:
例1-2


例1-2中android:oneshot設(shè)置了動(dòng)畫(huà)播放的次數(shù),當(dāng)為true時(shí),則只播放一次;當(dāng)為false時(shí),則循環(huán)播放該動(dòng)畫(huà)。在節(jié)點(diǎn)<item>中我們定義了動(dòng)畫(huà)的先后順序以及每一個(gè)圖片持續(xù)的時(shí)間,當(dāng)這些圖片按照一定的順序快速播放時(shí)就是一個(gè)完成的動(dòng)畫(huà)啦。至此,xml文件已經(jīng)完成編寫(xiě),我們可以查看R文件對(duì)應(yīng)的生成,如例1-3所示:
例1-3


由例1-3可知:在R文件內(nèi)部類(lèi)drawable中生成了一組圖片的ID。同時(shí),我們編寫(xiě)的girl.xml文件也在drawable類(lèi)中生成了相應(yīng)的定義,這也說(shuō)明該xml文件是一個(gè)圖片類(lèi)型。

4.編寫(xiě)布局文件

編寫(xiě)工程的布局文件activity_mian,在該布局文件中添加一個(gè)ImageView控件用來(lái)顯示動(dòng)畫(huà)。代碼如例1-4所示:
例1-4

5.編寫(xiě)動(dòng)畫(huà)

在Activity中編寫(xiě)動(dòng)畫(huà)的實(shí)現(xiàn),具體代碼如例1-5所示:
例1-5

運(yùn)行程序,選擇4.0以上的模擬器,效果如圖1-2所示:

圖1-2所示
若運(yùn)行該程序在2.3版本的模擬器上,此時(shí)并無(wú)對(duì)應(yīng)的動(dòng)畫(huà)效果,出現(xiàn)這種現(xiàn)象的原因:iv.getBackgroundResource方法是在子線程異步運(yùn)行的,需要消耗一定的時(shí)間,資源沒(méi)有獲取完成就已經(jīng)執(zhí)行了start方法,故沒(méi)有動(dòng)畫(huà)效果。調(diào)整例1-5代碼如例1-6所示:
例1-6


在例1-6中,我們新建了一個(gè)子線程并使該子線程在10ms之后開(kāi)啟動(dòng)畫(huà)的start方法。運(yùn)行程序,動(dòng)畫(huà)可以執(zhí)行,效果如圖1-3所示:

圖1-3所示

本文版權(quán)歸傳智播客Android培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Android培訓(xùn)學(xué)院
首發(fā):http://xamj520.com/Android

0 分享到:
和我們?cè)诰€交談!