Я получаю ошибку java.lang.OutOfMemoryError: bitmap size exceeds VM budget
.
Это происходит при создании растрового изображения с целью рисования линейного графика вручную.
width = display.getWidth() - 10;
height = width * 4 / 5;
Bitmap emptyBmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Bitmap charty = createMyGraphAndStuff(emptyBmap);
Похоже, что общая выделенная память была около 700 Кбайт, это неоправданное количество.
Я видел другие решения, вызываемые при создании растровых изображений из файла, но здесь я сам генерирую их. Как можно уменьшить объем памяти?
Вот еще немного кода, чтобы дать вам лучшее представление о том, что он делает:
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;
}