逐幀動畫的xml代碼:

1 <?xml version="1.0" encoding="utf-8"?> 2 <animation-list xmlns:android="http://schemas.android.com/apk/res/android" 3 android:oneshot="true" > 4 5 <item 6 android:drawable="@drawable/img10" 7 android:duration="1000"> 8 </item> 9 <item 10 android:drawable="@drawable/img9" 11 android:duration="1000"> 12 </item> 13 <item 14 android:drawable="@drawable/img8" 15 android:duration="1000"> 16 </item> 17 <item 18 android:drawable="@drawable/img7" 19 android:duration="1000"> 20 </item> 21 <item 22 android:drawable="@drawable/img6" 23 android:duration="1000"> 24 </item> 25 <item 26 android:drawable="@drawable/img5" 27 android:duration="1000"> 28 </item> 29 <item 30 android:drawable="@drawable/img4" 31 android:duration="1000"> 32 </item> 33 <item 34 android:drawable="@drawable/img3" 35 android:duration="1000"> 36 </item> 37 <item 38 android:drawable="@drawable/img2" 39 android:duration="1000"> 40 </item> 41 <item 42 android:drawable="@drawable/img1" 43 android:duration="1000"> 44 </item> 45 <item 46 android:drawable="@drawable/img0" 47 android:duration="1000"> 48 </item> 49 50 </animation-list>
對應的android代碼:
說明:
- android:oneshot:幀動畫運行的次數,true表示運行一次,false表示循環播放;
- item:定義每幀的屬性;
- android:drawable:指定該幀對應的圖像資源;
- android:duration:該幀圖像停留的時間。
1 public class MainActivity extends Activity { 2 3 private ImageView img; 4 private Button button; 5 private AnimationDrawable animationDrawable; 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 setContentView(R.layout.activity_main); 10 int duration=0; // duration是記錄第一個動畫播放的總時間 11 img=(ImageView) findViewById(R.id.imageView); 12 img.setImageResource(R.drawable.item_anim); 13 animationDrawable=(AnimationDrawable) img.getDrawable(); 14 img.post(new Runnable() { //在異步線程中執行啟動的方法 15 16 @Override 17 public void run() { 18 // TODO Auto-generated method stub 19 animationDrawable.start(); //啟動動畫 20 } 21 }); 22 for(int i=0;i<animationDrawable.getNumberOfFrames();i++){ 23 duration+=animationDrawable.getDuration(i); //計算動畫播放的時間 24 25 } 26 Handler handler=new Handler(); 27 handler.postDelayed(new Runnable() { 28 public void run() { 29 Intent intent=new Intent(MainActivity.this,TestActivity.class); //Intent 意圖 在執行完動畫的時候 跳轉至另一個頁面 30 startActivity(intent); 31 32 } 33 }, duration); 34 35 } 36 37 38 }