4
我對動畫使用canvas.drawBitmap(Bitmap,src,dst,null)。我爲動畫使用1個平鋪圖像,每個平鋪圖像包含超過100個用於製作動畫的圖像。我已經把CLICKListner開始動畫。我如何立即響應onClick的動畫?canvas.drawBitmap()花費更多的時間在平鋪位圖時第一次繪製位圖
我已經按照下面的鏈接使用動畫邏輯。 http://warriormill.com/2009/10/adroid-game-development-part-1-gameloop-sprites/
@Override
public void draw(Canvas canvas) {
try
{
FrameInfo frameinfo= animations.get(currentAnimation).sequence.get(currentFrame);
Rect rclip = frameinfo.rect;
Rect dest = new Rect(this.getXpos(), getYpos(), getXpos() + (rclip.right - rclip.left),
getYpos() + (rclip.bottom - rclip.top));
if(cf!=null)
{
//color filter code here
}
canvas.drawBitmap(tileSheet, rclip, dest, null);
update(); //after drawing update the frame counter
}
catch (Exception e)
{
Log.e("ERROR", "ERROR IN SPRITE TILE CODE:"+e.toString()+e.getStackTrace().toString());
}
}
如果這只是第一次點擊的問題,您可以在oncreate中繪製位圖,然後在第一次點擊時用您已繪製的位圖來更新視圖。使用工作線程進行繪製也很好。 – Jakar