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