我收到错误java.lang.OutOfMemoryError:位图大小超出VM预算.

创建位图以手动绘制折线图时会发生这种情况.

width = display.getWidth() - 10;

height = width * 4 / 5;

Bitmap emptyBmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);

Bitmap charty = createMyGraphAndStuff(emptyBmap);

看起来分配的总内存约为700 Kb,这是不合理的.

我已经看到了从文件创建位图时调用的其他解决方案,但是在这里我要自己生成一个.如何最小化其内存占用量?

这是一些更多的代码,可以使您更好地了解其工作情况:

public Bitmap DrawTheGraphAndStuff(Bitmap bitmap, String[] scores)

{

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);

Canvas canvas = new Canvas(output);

drawTheGridLines(canvas);

plotTheDataPoints(canvas , scores , "the title" , 0 );

canvas.drawBitmap(bitmap, rect, rect, paint);

return output;

}

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐