0
動作しない描画:ビットマップアニメーションは、私がアンドロイドにsurfaceviewにアニメーションを描画すると、以下のような問題しまった
私はonDraw()にするために、スレッドを使用する - 方法はregulary呼び出される、と私は使用これは:
c.drawBitmap(pic, partOfTheImage, destination, null);
私が描きたいスプライトシートの部分を描画します。 問題は今、私が "partOfTheImage"を変えたということです。描かれたのは、最初に描かれたものだけです。それは変化しません、アニメーションはありません。ここで
は、スレッド内のコードです:
try {
c = getGw().getHolder().lockCanvas();
synchronized (getGw().getHolder()) {
getGw().onDraw(c);
}
} finally {
if (c != null) {
getGw().getHolder().unlockCanvasAndPost(c);
}
}
誰もがなぜ私のビットマップありえない更新を知っていますか?
これはlogcatで既にテスト済みですが、drawBitmap()は一度しか呼び出されないようです...そして、私はコードでアニメーションを処理したいと思っていました。その部分のチュートリアルは、しかし、彼らのコードは私のために働いていない:? – Trunksome
ちょうどonDraw()が呼び出されても、実際に画面に表示されているわけではないので、代わりにinvalidateを呼び出すことをお勧めします。これは、onCreate()を呼び出すことによってアクティビティが作成され、適切に動作することを期待するようなものです。そう呼ばれることは意図されていません。 drawBitmap()が一度だけ呼び出された場合、これは私の推測です。 – Samuel
大丈夫ですが、問題は今、私のGameThreadがinvalidateを呼び出すことが許されていないことです。なぜなら、Surfaceviewを作成したスレッドではないからです。私はここのようにそれをやった:http://www.droidnova.com/2d-sprite-animation-in-android,471.html - 私はそれを得ることはありません。これに関して2009年以来何か変わったのですか? – Trunksome