drawCircle vs drawBitmap

时间:2011-08-18 14:23:52

标签: java android android-canvas draw geometry

我打算在我的游戏中实现一组新的数字:简单的圆圈。绘制的精灵(在这种情况下为圆圈)的数量从2-3开始,并且可以无限地(可能)上升。最大值可能在60左右。总共将有5种类型的圆圈,每种圆圈都有不同的颜色,也可能是大小。现在看到我直到星期一才会实现它,我以为我会在stackoverflow上问它。

有没有人知道哪种方法更快?

1 个答案:

答案 0 :(得分:7)

位图几乎总是比任何类型的绘制更快。使用正确的准备图,位图只是将内存转储到屏幕上。绘制圆圈涉及大量计算,包括抗锯齿。我在JavaOne 2009上发表了一篇论文,但是旧的文章似乎已从网站上删除了。

它确实取决于你的位图需要多大,但对于10像素以下的尺寸,位图精灵甚至比绘制十字和线条等简单的图形操作要快得多。你还需要确保你的精灵在绘制时不需要任何变换,并且它是一个与屏幕内存兼容的形式。

如果每个圆圈的颜色或厚度不同,或者不同的尺寸,那么这是另一回事。创建每个位图的成本将超过节省的成本。

你还应该记住第一条优化规则:除非必须这样做,否则不要这样做。