屏幕切換指的是在同一個Activity內(nèi)屏幕間的切換,ViewFlipper繼承了Framelayout類,ViewAnimator類的作用是為FrameLayout里面的View切換提供動畫效果。如下動圖:
該類有如下幾個和動畫相關(guān)的函數(shù):
setInAnimation:設(shè)置View進入屏幕時候使用的動畫,該函數(shù)有兩個版本,一個接受單個參數(shù),類型為android.view.animation.Animation;一個接受兩個參數(shù),類型為Context和int,分別為Context對象和定義Animation的resourceID。
setOutAnimation: 設(shè)置View退出屏幕時候使用的動畫,參數(shù)setInAnimation函數(shù)一樣。
showNext: 調(diào)用該函數(shù)來顯示FrameLayout里面的下一個View。
showPrevious: 調(diào)用該函數(shù)來顯示FrameLayout里面的上一個View。
下面通過坐標軸的形式為大家演示動畫實現(xiàn)方式:
由上圖可知,以屏幕左下角為數(shù)學坐標軸的原點,屏幕下邊框為X軸,左邊框為Y軸,當前屏幕顯示為圖二,如果要看圖一,則需要圖一由左至右(相對屏幕而言)進入屏幕,圖一X軸初始坐標為-100%p,移動到屏幕位置時圖一X軸變?yōu)?(因為本次演示為橫向滑動,所以不涉及Y軸);同理圖三要進入屏幕,則需由右至左,X軸由100%p變?yōu)?.清楚了坐標位置,我們要實現(xiàn)四種動畫效果,就會很簡單,下面代碼(需建立在res目錄下自建的anim文件夾下)演示四種動畫效果: