Android:有没有办法加快canvas.drawBitmap的速度?

Zip*_*ppy 8 performance android frame-rate sprite tablet

简单的问题,不确定是否有一个简单的答案!!

我能做些什么来加速我的surfaceview绘图?

我正在使用这样的东西:

c.drawBitmap(scaledSprite, X, Y, redPaint);
Run Code Online (Sandbox Code Playgroud)

我正在使用的方法必须在屏幕上绘制大约25个这些精灵,所以我使用for循环,这意味着它必须在一帧中显示25.

现在,这在我测试过的3款手机上运行得非常好,但在平板电脑上,它只是放慢速度.我已经评论了所有其他的绘图方法,只留下了这一个,这绝对是减缓游戏速度的原因.

是否有任何聪明的提示可以让我加快速度?

我知道开放GL是一种可能性,但现在大部分游戏都已编写好,所以如果我能帮助的话,我现在并不想做任何重大改变.

Lum*_*mis 7

如果将SurfaceView设置为较低质量的图形

getHolder().setFormat(0x00000004); //RGB_565
Run Code Online (Sandbox Code Playgroud)

并在同一配置中加载所有位图

Options options = new BitmapFactory.Options();
options.inScaled = false; 
options.inPreferredConfig = Bitmap.Config.RGB_565;
Run Code Online (Sandbox Code Playgroud)

这会使它更快,而且你需要根据帧延迟来制作精灵的可变移动速度.

然而,即使使用这些设置,具有许多精灵的街机游戏在平板电脑上也不会很好用,因此,我担心,如果你想制作一款适合销售的游戏,你必须创建一个OpenGl框架或使用现成的框架.