我想使用表面视图在画布上绘制 13 个不同的位图(显然,使用表面视图还有其他一些原因)。为此,我启动了一个游戏线程,在其中我调用了无限循环中的表面视图方法,并在此方法中循环绘制 13 个不同的位图。
但在三星 Galaxy s3、galaxy s2 等手机和摩托罗拉设备中,我的一些位图在某个时间点后就消失了。
这是我绘制位图的代码:
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);
}
}