Home » Android » Creating an empty bitmap and drawing though canvas in Android

Creating an empty bitmap and drawing though canvas in Android

Posted by: admin March 11, 2020 Leave a comment

Questions:

I’d like to create an empty bitmap and set a canvas to that bitmap and then draw any shape on the bitmap.

How to&Answers:

This is probably simpler than you’re thinking:

int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_8888; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

Here’s a series of tutorials I’ve found on the topic: Drawing with Canvas Series

Answer:

Do not use Bitmap.Config.ARGB_8888

Instead use
int w = WIDTH_PX, h = HEIGHT_PX;

Bitmap.Config conf = Bitmap.Config.ARGB_4444; // see other conf types
Bitmap bmp = Bitmap.createBitmap(w, h, conf); // this creates a MUTABLE bitmap
Canvas canvas = new Canvas(bmp);

// ready to draw on that bitmap through that canvas

ARGB_8888 can land you in OutOfMemory issues when dealing with more bitmaps or large bitmaps.
Or better yet, try avoiding usage of ARGB option itself.