我想使用表面视图在画布上绘制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);
}
}
答案 0 :(得分:0)
这可能是一个答案。较旧的设备可能无法跟上。试试你的位图。这增加了我的表现。屏幕似乎在密集时被擦除。虽然质量有点下降。
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
public static int calculateInSampleSize(BitmapFactory.Options options,int reqWidth,int reqHeight);
public static Bitmap decodeSampledBitmapFromResource(Resources res,int resId,int reqWidth,int reqHeight)