加载位图或绘制图形?性能问题

5

好的,我将在屏幕上绘制许多“昆虫”。我的问题是,如果我要画一只蜘蛛,例如,加载位图,将其矩阵化到正确的角度,然后在屏幕上绘制(一遍又一遍),还是使用canvas.drawLine、drawCircle等来画一只蚂蚁,哪种方法更快?直接比较如下:

位图:500字节,带透明度

绘制:8个drawLines,2个drawCircles

我已经有很多事情要做了,所以性能非常重要。

提前感谢!


你已经对这两种方法进行基准测试了吗? - Mitch Wheat
不,我希望通过在这里询问绘制线条和圆形是否比位图更快来节省创建代码以找出如何绘制蜘蛛的时间。 :D - teynon
1个回答

3

绘制位图的速度要快得多。真正重要的是你要绘制多少像素(即覆盖绘制,这将影响最大填充率)。使用位图还可以创建更丰富的图形,而不会影响性能。


我有一段时间没有做这个了,但如果我记得正确的话,每次旋转位图时,它都会创建一个新的图形(实质上)。换句话说,它会增加更多的内存。因此,如果屏幕上有70只蚂蚁,每只蚂蚁角度都不同,那就需要很多内存。 - teynon
旋转位图不会分配内存。当然,如果你自己复制的话就另说了。 - Romain Guy
屏幕上有70只蚂蚁,它们朝不同的方向前进,这意味着每个图形都必须单独旋转到其指定的位置。使用矩阵进行操作需要复制,是否有其他方法可以避免这种情况? - teynon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接