【工匠若水http://blog.csdn.net/yanbober】
Android系統(tǒng)提供了很多豐富的API去實(shí)現(xiàn)UI的2D與3D動(dòng)畫(huà)合愈,最主要的劃分可以分為如下幾類:
View Animation:視圖動(dòng)畫(huà)在古老的Android版本系統(tǒng)中就已經(jīng)提供了威彰,只能被用來(lái)設(shè)置View的動(dòng)畫(huà)域滥。
Drawable Animation:這種動(dòng)畫(huà)(也叫Frame動(dòng)畫(huà)械筛、幀動(dòng)畫(huà))其實(shí)可以劃分到視圖動(dòng)畫(huà)的類別,專門用來(lái)一個(gè)一個(gè)的顯示Drawable的resources专肪,就像放幻燈片一樣适袜。
Property Animation:屬性動(dòng)畫(huà)只對(duì)Android 3.0(API 11)以上版本的Android系統(tǒng)才有效,這種動(dòng)畫(huà)可以設(shè)置給任何Object剩蟀,包括那些還沒(méi)有渲染到屏幕上的對(duì)象催蝗。這種動(dòng)畫(huà)是可擴(kuò)展的,可以讓你自定義任何類型和屬性的動(dòng)畫(huà)育特。
到此Android動(dòng)畫(huà)基本已經(jīng)描述OK了丙号,也就這么三大類,尤其是屬性動(dòng)畫(huà)更加一籌缰冤。但是特別說(shuō)一句犬缨,上面基本都沒(méi)有提及到各種動(dòng)畫(huà)的Listener接口,原因是這個(gè)玩意太簡(jiǎn)單棉浸,所以不提了遍尺,相信你會(huì)監(jiān)聽(tīng)View的onClickListener就一定會(huì)觸類旁通動(dòng)畫(huà)的Listener方法的。有了這些基礎(chǔ)相信無(wú)論是自定義控件時(shí)還是自定義動(dòng)畫(huà)時(shí)都會(huì)起到直接的指導(dǎo)參考作用涮拗。其實(shí)對(duì)于Android的動(dòng)畫(huà)實(shí)現(xiàn)遠(yuǎn)遠(yuǎn)不止現(xiàn)在提到的這些乾戏,但是這些又是基礎(chǔ),所以后面還會(huì)寫(xiě)文章說(shuō)說(shuō)Android提供的其他動(dòng)畫(huà)參考工具類的三热。
現(xiàn)在我們繼續(xù)沿用官方的對(duì)比鼓择,翻譯一下這些動(dòng)畫(huà)的區(qū)別,具體如下(點(diǎn)我參看原文How Property Animation Differs from View Animation):
View動(dòng)畫(huà):
View動(dòng)畫(huà)只能夠?yàn)閂iew添加動(dòng)畫(huà)就漾,如果想為非View對(duì)象添加動(dòng)畫(huà)須自己實(shí)現(xiàn)呐能;且View動(dòng)畫(huà)支持的種類很少;尤其是他改變的是View的繪制效果抑堡,View的屬性沒(méi)有改變摆出,其位置與大小都不變;View動(dòng)畫(huà)代碼量少首妖,使用簡(jiǎn)單方便偎漫。
Property動(dòng)畫(huà):
彌補(bǔ)了View動(dòng)畫(huà)的缺陷,你可以為一個(gè)對(duì)象的任意屬性添加動(dòng)畫(huà)有缆,對(duì)象自己的屬性會(huì)被真的改變象踊;當(dāng)對(duì)象的屬性變化的時(shí)候温亲,屬性動(dòng)畫(huà)會(huì)自動(dòng)刷新屏幕;屬性動(dòng)畫(huà)改變的是對(duì)象的真實(shí)屬性杯矩,而且屬性動(dòng)畫(huà)不止用于View栈虚,還可以用于任何對(duì)象。