サーフェス ビューを使用してキャンバスに 13 の異なるビットマップを描画したいと考えています (明らかに、サーフェス ビューを使用する理由は他にもあります)。この目的のために、無限ループでサーフェス ビューのメソッドを呼び出すゲーム スレッドを開始しました。このメソッドでは、ループ内で 13 の異なるビットマップを描画します。
しかし、Samsung galaxy s3、galaxy s2 などの一部の携帯電話や Motorola デバイスでは、ビットマップの一部がしばらくすると消えてしまいます。
ビットマップを描画するための私のコードは次のとおりです。
for (int i = 0; i < 13; i++) {
// Drawing Bushes
canvas.drawBitmap(assets.bushes[this.bushes[i].frameNo - 1], null,
camera.getScaledRect(bushes[i].bounds.getRect()),
bitmapPaint);
/*
* drawBitmap(canvas, bushes[i],
* assets.bushes[this.bushes[i].frameNo - 1], camera);
*/
// Drawing Waves
if (waves[i].alpha != 0) {
bitmapPaint.setAlpha((int) (waves[i].alpha * 255));
canvas.drawBitmap(assets.waves[this.waves[i].frameNo - 1],
null, camera.getScaledRect(waves[i].bounds.getRect()),
bitmapPaint);
bitmapPaint.setAlpha(255);
}
}