I have a project that uses SurfaceView
to draw some stuff on the screen. User should be able to take screenshot by pressing the button on that screen. Problem is that I always get blank screen when screenshot is taken from SurfaceView
. I tried a lot of different answers however none of them worked for me. Here's what I tried:
void takeScre() {
File file = saveBitmap(getBitmap());
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "image/*");
startActivity(intent);
}
Bitmap getBitmap() {
dots_screen_view.setDrawingCacheEnabled(true);
return dots_screen_view.getDrawingCache();
}
//----------
Bitmap getBitmap() {
Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
dots_screen_view.draw(c);
return b;
}
//-----------
Bitmap getBitmap() {
Bitmap b = Bitmap.createBitmap(dots_screen_view.getWidth() , dots_screen_view.getHeight(), Bitmap.Config.ARGB_8888);
dots_screen_view.setDrawingCacheEnabled(false);
dots_screen_view.layout(0, 0, dots_screen_view.getLayoutParams().width, dots_screen_view.getLayoutParams().height);
dots_screen_view.draw(new Canvas(b));
return b;
}
Also I have tried those libraries:
https://android-arsenal.com/details/1/6985
However none of them works for me. Any other ideas?