I'm taking screenshot as below:
public static Bitmap takeScreenshot(Activity activity) {
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = view.getDrawingCache();
Rect rect = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay().getHeight();
Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, statusBarHeight, width,
height - statusBarHeight);
view.destroyDrawingCache();
return bitmap2;
}
But there is a Edittext in my layout. I click it and keyboard pop up, but screenshot doesn't contain keyboard using this way. How can I take screenshot programmatically also which can also capture the keyboard?
It seems there is no way to get screenshot from screen of a device that
is not rooted
.Here,CommonsWare says:Although you can get screenshot of emulator when your App is running!
Edit:
But there exists a library that is called
ASL
(Android Screenshot Library):I did not try it,but you can see more details in about it here.
Read somewhere on the forums about another way: -
You can try that out. Don't know if it works or not, just saved it for a rainy day :P.
EDIT:
Found the link to the post - How to take a screenshots?
User says, screenshots work for him. I think this should suit your requirement.