/**
* 播放bitmap變量中存貯的素材中的動畫
* @param canvas 畫布
* @param holder
* @param paint 筆
* @param scale 是否翻轉
* @param w 每幀的寬度
* @param h 每幀的高度 如隻有一排可設定為1
*/
protected void playAnimation(Integer w,Integer h,Canvas canvas, SurfaceHolder holder, Paint paint,boolean scale){
int frameW = bitmap.getWidth()/w; //獲得每一幀的寬
int frameH = bitmap.getHeight()/h; //獲得每一幀的高
int col = bitmap.getWidth()/frameW; //獲得位圖列數
int x = cureentFrame%col * frameW;
int y = cureentFrame /col * frameH;
paint.setAlpha(255);//不透明
canvas.save();
//paint.setColor(Color.RED);//設定畫筆顔色
//設定每幀可見區域為角色一樣大小
canvas.clipRect(bmpX,bmpY,bmpX+bitmap.getWidth()/w,bmpY+bitmap.getHeight()/h);
if(scale){
//如果向左移動則設定角色翻轉
canvas.scale(-1,1,bmpX-x+bitmap.getWidth()/w,bmpY-y+bitmap.getHeight()/h);
}
canvas.drawBitmap(bitmap, bmpX-x,bmpY-y, paint);
canvas.restore();
}
傳入需要參數 即可 bitmap裡存儲的是角色動畫的素材