Вы должны загрузить растровое изображение указанного размера и загрузить его на холст, затем вы можете рисовать, используя прослушиватели событий.
int width = WIDTH_IN_PIXELS, height = HEIGHT_IN_PIXELS;
Bitmap.Config config = Bitmap.Config.ARGB_8888;
Bitmap bitmap = Bitmap.createBitmap(width, height, config);
Canvas canvas = new Canvas(bitmap);
ARGB_8888
хранит 4 байта на одном пикселе. Итак, примерно 2000 * 2000 использует около
2000 * 2000 = 40 000 000 пикселей
Таким образом, общее количество байтов будет 40,00,000 * 4 =
1,60,00,000 байт
Таким образом, в МБ это будет 16 МБ , который не достигнет MemoryOut.
Итак, что вы можете сделать, это загрузить масштабированную (например, 320 * 320, требующую только 400 КБ) версию вашего более крупного холста в представлении переработчика, так же как и подача instagram, там много памяти не будет использоваться, потому что как вы прокручиваете представления будут переработаны.
Когда пользователь щелкает конкретный элемент, вы можете использовать полное растровое изображение для другого действия, чтобы его было легко обрабатывать, а пользователь мог редактировать существующее растровое изображение и сохранять.