天天看點

Android動畫Frame Animation 幀動畫

//=================【frame animation 幀動畫】===============================

frame動畫是一系列圖檔按照一定的順序展示的過程,和放電影的機制很相似,我們稱為逐幀動畫。

frame動畫可以被定義在xml檔案中,也可以完全編碼實作。

實作方法兩種:

1)xml中的實作方法

在/res下的anim或drawable目錄中(/res/[anim |drawable]/filename.xml),

檔案名可以作為資源id在代碼中引用;

1、[xml檔案的文法] 

<item>元素代表一幀動畫,android:drawable指定此幀動畫所對應的圖檔資源,android:druation代表此幀持續的時間,整數,機關為毫秒。

android:onshot如果定義為true的話,此動畫隻會執行一次,如果為false則一直循環。

2、圖檔放于drawable目錄

imageview image = (imageview) findviewbyid(r.id.frame_image);    

        image.setbackgroundresource(r.anim.frame);  //将動畫資源檔案設定為imageview的背景  

//擷取imageview背景,此時已被編譯成animationdrawable  

        animationdrawable anim = (animationdrawable) image.getbackground();  

        anim.start(); //開始動畫  

在oncreate中調用animationdrawable的start方法時,視窗window對象還沒有完全初始化,

animationdrawable不能完全追加到視窗window對象中,那麼該怎麼辦呢?

我們需要把這段代碼放在onwindowfocuschanged方法中,當activity展示給使用者時,onwindowfocuschanged方法就會被調用,我們正是在這個時候實作我們的動畫效果。

當然,onwindowfocuschanged是在oncreate之後被調用的,如圖:

2)java代碼實作的幀動畫

<a target="_blank" href="http://download.csdn.net/detail/flyingsir_zw/9541211">源碼下載下傳頁面:</a>

http://download.csdn.net/detail/flyingsir_zw/9541211

Android動畫Frame Animation 幀動畫

繼續閱讀