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

时间:2013-01-30 22:38:53

标签: android performance sprite tablet frame-rate

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

我能做些什么来加速我的表面视图绘制?

我正在使用这样的东西:

c.drawBitmap(scaledSprite, X, Y, redPaint);

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

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

有没有任何聪明的提示,任何人都可以给我加快速度?

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

1 个答案:

答案 0 :(得分:7)

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

getHolder().setFormat(0x00000004); //RGB_565

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

Options options = new BitmapFactory.Options();
options.inScaled = false; 
options.inPreferredConfig = Bitmap.Config.RGB_565;

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

然而,即使使用这些设置,具有许多精灵的街机游戏也无法在平板电脑上正常运行,因此,我担心,如果您想制作适当的游戏,您必须创建一个OpenGl框架或使用现成的的。