1、動畫圖片
將4張連續的動畫圖片分別取名爲img_a0...img_a3,然後拷貝到項目的res-drawable中
2、MainActivity.java類
包
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Canvas;
類的實現
public class MainActivity extends Activity {
private final static int ANIM_COUNT = 4; // 總共的圖片數
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new FrameView(this));
}
<span style="white-space:pre"> </span>//<span style="white-space:pre"> </span>自定義View
class FrameView extends View {
Bitmap[]bitmap = new Bitmap[ANIM_COUNT];
Bitmap bitmapDisplay = null;
Paint paint = null;
long startTime = 0;
int nPlayId = 0;
// 構造函數
public FrameView (Context context) {
super(context);
// 加載圖片
for(int i = 0; i < ANIM_COUNT; i++) {
bitmap[i] = BitmapFactory.decodeResource(this.getResources(), R.drawable.img_a0+i);
}
bitmapDisplay = bitmap[0];
paint = new Paint();
startTime = System.currentTimeMillis();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.BLACK);
paint.setColor(Color.WHITE);
paint.setTextSize(18);
canvas.drawText("動畫播放中...", 80, 30, paint);
// 500毫秒換一次圖
long nowTime = System.currentTimeMillis();
if (nowTime-startTime > 500) {
startTime = nowTime;
nPlayId++;
if (nPlayId >= ANIM_COUNT) {
nPlayId = 0;
}
bitmapDisplay = bitmap[nPlayId];
}
// 顯示圖片
canvas.drawBitmap(bitmapDisplay, 80, 80, paint);
invalidate();
}
}
}
3、效果圖