我想將位圖從X,Y移動到新的X',Y'併爲其設置動畫。我有一個SurfaceView作爲Activity的內部類,並且SurfaceView作爲線程運行並處理畫布上的所有圖形。如何移動位圖併爲其設置動畫效果
這裏是線程的run方法:
public void run()
{
while(threadOk == true)
{
if(!holder.getSurface().isValid())
continue;
Canvas canvas = null;
try
{
canvas = holder.lockCanvas();
letsDraw(canvas);
}
finally
{
if (canvas != null)
{
holder.unlockCanvasAndPost(canvas);
}
}
}
}
這裏是letsDraw(Canvas canvas)
方法:
public void letsDraw(Canvas canvas)
{
canvas.drawARGB(255, 0, 102, 0);
canvas.drawBitmap(card.getPic(), card.getX(), card.getY(), null);
}
的card
是一個自定義類Card(Bitmap pic, float X, float Y)
的一個實例。 事情是,我知道如何處理這種情況。我想將位圖「轉移」幾個像素,並在此過程中對其進行動畫處理。
我一直在瀏覽YouTube上的一些教程,並讓他們說這是正確的方法,因爲在視圖中作爲一個單獨的線程運行。所以你說我不應該把它作爲一個線程運行? – Kajzer 2013-02-13 11:33:25
不,你在'letsDraw()'中調用了一個不需要的方法。已經有預製的方法可供您使用。但在你的情況下,如果你不想改變任何東西,你可以簡單地在繪圖調用結束時調用'invalidate()'。 – Synaero 2013-02-13 11:39:34