我使用以下代码在 surfaceCreated() 中设置了背景图像:
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.untitled);
float heightScale = ((float)background.getHeight())/(float)this.getHeight();
float widthScale = (float)background.getWidth()/(float)this.getWidth();
float scale = heightScale > widthScale ? widthScale : heightScale;
int newWidth = Math.round((float)background.getWidth()/scale);
int newHeight = Math.round((float)background.getHeight()/scale);
scaled = Bitmap.createScaledBitmap(background, newWidth, newHeight, true);
缩放为受保护的位图。在 onDraw() 函数期间,我有这个:
canvas.drawBitmap(scaled, 0, 0, null); // draw the background
与使用此功能相比,这会使我的绘图速度减慢 20-30 毫秒:
canvas.drawColor(Color.Black);
有没有办法解决?加速后台onDraw函数?我注意到如果我不设置背景,应用程序将不会清除我绘制的精灵。