How to export a View as Bitmap
In last days in my Card library, I tried to export a View as a Bitmap.
A simple way to export the view is to use following code:
Pay attention where you will use this code.
If you use this in
In these cases you have to use something like this before drawing the bitmap:
An example:
A simple way to export the view is to use following code:
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
Pay attention where you will use this code.
If you use this in
onCreate() method, the View didn't go through a layout, so its size is null (0x0).In these cases you have to use something like this before drawing the bitmap:
view.measure(widthSpec, heightSpec);
view.layout(left, top, right, bottom);
An example:
int spec = MeasureSpec.makeMeasureSpec(0,MeasureSpec.UNSPECIFIED);
view.measure(spec,spec);
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
Bitmap b = Bitmap.createBitmap(view.getWidth(), view.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
Comments
Post a Comment