首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android Canvas --绘制矩形或矩形的图片

Android Canvas --绘制矩形或矩形的图片
EN

Stack Overflow用户
提问于 2012-07-06 23:30:33
回答 2查看 2.8K关注 0票数 3

如果您总是必须绘制相同的矩形,那么使用静态位图或使用canvas.drawRect()更快?

在这个例子中,有四个分层的矩形。因此使用填充颜色的边框,然后中间颜色和填充颜色之间的边框。

所以四个paint.setColor()命令和四个canvas.drawRect命令或一个canvas.drawBitmap()。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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个的方法。所以你不会引起大量的重复。

例如:

代码语言:javascript
复制
public void DrawMyRect(Canvas canvas, int x, int y)
{
   canvas.drawRect(x, y ,x + 15, y + 40, paint);
   // Draw its line etc etc..
 }

或者,如果您确实要绘制位图,因为它确实有优势:

票数 3
EN

Stack Overflow用户

发布于 2012-07-06 23:38:16

性能差异可能可以忽略不计。位图将使用更多的内存,画布绘制调用将使用更多的CPU。如果您想减少调用,而不需要位图的开销,那么您可以使用ShapeDrawable

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11365234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档