Android中的繪圖動畫(Drawable Animation)

Android中的繪圖動畫(Drawable Animation)就像傳統的電影一樣,將畫面按一定順序和速度逐幀播放,人眼看上去就像連續的畫面一樣。


繪圖動畫的機理就是在一個可以顯示drawable資源的控件中連續播放不同的drawable資源文件(例如圖片)。


那麼我們來看一樣如何製作一段繪圖動畫:

1)首先我們需要蒐集我們要用的drawable資源。這裏我們蒐集一些小圖標,這些圖標的命名都在圖片下面附上了:

                                

pic1.9.png          pic2.9.png           pic3.9.png


2)然後我們將這些drawable資源導入到響應的Android工程目錄中,如圖:


可以看見,我們的3個drawable資源文件已經在  res/drawable-hdpi/ 目錄中了。


3)在這個 res/drawable-hdpi/ 目錄中再創建一個xml文件,然後在這個xml文件中定義我們的動畫要用到的畫面。這個xml文件的路徑+文件名爲res/drawable-hdpi/test_animation.xml ,實例代碼如下

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" >  <!-- android:oneshot爲false則循環播放,爲true則值播放一次到最後一幀 -->>

    <item
        android:drawable="@drawable/pic1"
        android:duration="80"/>        <!-- android:duration設定換幀的時間間隔 -->
    <item
        android:drawable="@drawable/pic2"
        android:duration="80"/>
    <item
        android:drawable="@drawable/pic3"
        android:duration="80"/>

</animation-list>


4)好了,這樣就有了一個可以用來播放的動畫資源了,但是要播放它我們還需要在工程代碼中添加如下代碼:

public class MainActivity extends Activity {
	private AnimationDrawable testAnimation;

	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//要事先在active_main.xml中定義一個ImageView並把id設置爲animationImageView
		ImageView imageView = (ImageView) findViewById(R.id.animationImageView);
		imageView.setBackgroundResource(R.drawable.test_animation);
		testAnimation = (AnimationDrawable) imageView.getBackground();
	}

	//點擊一下屏幕則開始播放動畫
	public boolean onTouchEvent(MotionEvent event) {
		if (event.getAction() == MotionEvent.ACTION_DOWN) {
			testAnimation.start();  //使用start()方法來播放動畫
			return true;
		}
		return super.onTouchEvent(event);
	}
}

通過如上4步,一段繪圖動畫就製作完畢了。


※注意:AnimationDrawable類的start()方法不能再onCreate()生命週期函數中調用,因爲你的AnimationDrawable對象可能還沒有加載完畢。如果你希望動畫能夠直接播放,你應該在activity的onWindowFocusChanged()函數中調用它。





如果轉載請註明出處:http://blog.csdn.net/gophers/article/details/22983187




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章