Android應用開發——創建一個帶動畫效果的View

備註:源自Android Samples——Snake

要使View具有動畫效果,步驟如下:

  1. 在View中添加一個Handler,該Handler負責處理View的刷新請求,Handler在處理這個請求的時候,會先執行View的數據更新。
  2. 在View數據更新完(update()方法)後,向Handler發送延時刷新View請求,那麼又回到了步驟一,這就形成一個循環,產生動畫效果

代碼模型如下:

package com.example.android.snake;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.view.View;

public class AnimationModel extends View {
	public class RefreshHandler extends Handler {
		//刷新View
		@Override
		public void handleMessage(Message msg) {
			update();
			invalidate();
			removeMessages(0);
		}
		//延時一段時間後發送刷新View的請求
		public void delayRefresh(int delayed) {
			sendMessageDelayed(obtainMessage(0), delayed);
		}

	}

	public AnimationModel(Context context) {
		super(context);
	}

	boolean isRuning;
	public final static int DELAYED = 600;

	private RefreshHandler refreshHandler = new RefreshHandler();

	//由update方法與refreshHandler.delayRefresh形成一個無限循環
	private void update() {
		if (isRuning) {
			// 這裏執行View的一些數據更新
			//...
			
			refreshHandler.delayRefresh(DELAYED);
		}

	}
}



發佈了30 篇原創文章 · 獲贊 31 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章