逐幀動畫其實很簡單,下面我們來看一個例子:
<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/progress_1" android:duration="200"/> <item android:drawable="@drawable/progress_2" android:duration="200"/> <item android:drawable="@drawable/progress_3" android:duration="200"/> <item android:drawable="@drawable/progress_4" android:duration="200"/> <item android:drawable="@drawable/progress_5" android:duration="200"/> <item android:drawable="@drawable/progress_6" android:duration="200"/> <item android:drawable="@drawable/progress_7" android:duration="200"/> <item android:drawable="@drawable/progress_8" android:duration="200"/> </animation-list>
android:oneshot="false"的意思是迴圈播放
介面布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="開始" android:onClick="start"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="停止" android:onClick="stop"/><ImageView android:id="@+id/iv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@anim/zhuzhen" android:layout_gravity="center"/></LinearLayout>
MainActivity.java
package com.example.testanimation;import android.graphics.drawable.AnimationDrawable;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.View;import android.widget.ImageView;public class MainActivity extends ActionBarActivity {private AnimationDrawable anim;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ImageView iv = (ImageView) findViewById(R.id.iv);anim = (AnimationDrawable) iv.getBackground();}public void start(View view){anim.start();}public void stop(View view){anim.stop();}}
運行效果: