0
我買了android系統上surfaceview繪製動畫以下問題:繪製位圖動畫不起作用
我使用一個線程來進行的onDraw() - 方法被調用regulary,我用這個:
c.drawBitmap(pic, partOfTheImage, destination, null);
來繪製我想繪製的spritesheet的一部分。 現在的問題是,即使我改變「partOfTheImage」,唯一繪製的是先畫的東西。它不改變,沒有動畫。
這裏是在線程代碼:
try {
c = getGw().getHolder().lockCanvas();
synchronized (getGw().getHolder()) {
getGw().onDraw(c);
}
} finally {
if (c != null) {
getGw().getHolder().unlockCanvasAndPost(c);
}
}
有誰知道爲什麼我的心不是位圖更新?
是的,它被稱爲,我已經測試它與logcat ...但它看起來像「drawBitmap()」只被調用一次...而我想用代碼處理動畫,我已經紅了一些這部分的教程,但他們的代碼不會爲我工作:? – Trunksome 2012-03-14 14:23:25
只是因爲onDraw()被調用並不意味着它實際上被放在屏幕上,這就是爲什麼我建議調用invalidate。這就像期待一個活動被創建並通過調用onCreate()來正常工作。不打算這樣叫。如果drawBitmap()只被調用一次,這是我最好的猜測。 – Samuel 2012-03-14 14:27:44
好吧,現在的問題是我的GameThread不允許調用invalidate,因爲它不是創建surfaceview的線程。我這樣做就像這樣:http://www.droidnova.com/2d-sprite-animation-in-android,471.html - 我沒有得到它;自2009年以來做了什麼改變? – Trunksome 2012-03-14 14:55:58