Android绘图性能 - canvas.drawRect与位图绘图

时间:2012-07-06 14:25:12

标签: java android performance drawing android-canvas

我正在编写一个基于粒子的游戏,主要是通过绘制大量彩色形状来构建的。

问题1)

对于大多数敌方单位,我通过设置绘画然后在画布上绘制矩形来绘制4个分层矩形。

我想知道使用位图绘制或使用画布绘图工具绘制是否更好?我可以很容易地制作出我希望绘制的敌方单位的单个图像。

问题2)

对于我必须在屏幕上绘制的图像,我想知道如何加载它们?

现在我有很多像这样加载的.png图像:

direction1 = BitmapFactory.decodeStream(assetMgr.open("direction1.png"));

我已经读过RGB565是禁止绘制到屏幕的图像类型。 Microsoft Paint有一些保存选项,但大多数程序只保存为位图,而不是一种位图。如果我开始使用这种新格式,我会:

  1. 制作新图片并使用相同的加载代码。
  2. 使用相同的图片并添加Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);之类的内容 从初始加载格式转换为RGB565格式。
  3. 制作新图片并更改我的加载代码。
  4. 感谢您的帮助!非常感谢。

2 个答案:

答案 0 :(得分:0)

  1. 无。使用OpenGL总是更好,唯一的缺点是 它需要更多的电池能量,因为它是硬件 加快。

  2. RGB565意味着图像使用16位,所以就是     你应该寻找的选择。不要转换任何东西,只需创建它们     以您将使用的格式。

答案 1 :(得分:0)

如果Bitmap没有逐帧移动,您应该尝试减少invalidate()方法调用。只有在进行更改时才应重新绘制画布,并且应该更新。