如果您总是必须绘制相同的矩形,那么使用静态位图或使用canvas.drawRect()更快?
在这个例子中,有四个分层的矩形。因此使用填充颜色的边框,然后中间颜色和填充颜色之间的边框。
所以四个paint.setColor()命令和四个canvas.drawRect命令或一个canvas.drawBitmap()。
发布于 2012-07-06 23:37:50
我强烈推荐drawRect()。
位图会占用大量内存,如果使用不当,可能会导致Out Of Memory异常。
由android编写:
位图占用大量内存,特别是对于像照片这样的丰富图像。例如,Galaxy Nexus上的摄像头可以拍摄高达2592x1936像素(500万像素)的照片。如果使用的位图配置是ARGB_8888 (从Android2.3开始的默认配置),那么将此图像加载到内存中需要大约19MB内存(2592*1936*4字节),会立即耗尽某些设备上的每个应用程序限制。
以防止头痛和意外的崩溃。使用drawRect();
如果你经常为不同的对象做这4个绘制,考虑写一个为你做所有4个的方法。所以你不会引起大量的重复。
例如:
public void DrawMyRect(Canvas canvas, int x, int y)
{
canvas.drawRect(x, y ,x + 15, y + 40, paint);
// Draw its line etc etc..
}或者,如果您确实要绘制位图,因为它确实有优势:
发布于 2012-07-06 23:38:16
性能差异可能可以忽略不计。位图将使用更多的内存,画布绘制调用将使用更多的CPU。如果您想减少调用,而不需要位图的开销,那么您可以使用ShapeDrawable。
https://stackoverflow.com/questions/11365234
复制相似问题