//=================【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