Android: creating a Bitmap with SurfaceView content
android, bitmap, image-processing, save, surfaceview
Solution
For API levels >=24, use the PixelCopy API. Here's an example inside an ImageView:
public void DrawBitmap(){
Bitmap surfaceBitmap = Bitmap.createBitmap(600, 600, Bitmap.Config.ARGB_8888);
PixelCopy.OnPixelCopyFinishedListener listener = copyResult -> {
// success/failure callback
};
PixelCopy.request(YourSurfaceView, surfaceBitmap,listener,getHandler());
// visualize the retrieved bitmap on your imageview
setImageBitmap(plotBitmap);
}
}
Problem
I'm afraid to already have the unfortunate answer to this question but just in case... I'm using a SurfaceView to do some image processing with bitmaps (lights and colors modifications) and I would need to import the modified bitmap (i.e. the content of the SurfaceView) in a new bitmap so that I can save it as an image file. I've been looking around and it seems that it's possible to get a bitmap from View.getDrawingCache() but it doesn't work with SurfaceView. All I get is an empty bitmap. Is there any solution to this? Thanks