[android]如何截图的activity,包括 PopupWindows 和 AlertDialogs 的内容?

发布时间: 2014/3/5 8:08:27
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想要的一切都应用程序的屏幕显示的位图。我目前检索的视图和其与下面的截图:

View viewToCapture = activity.getWindow().getDecorView().getRootView();
... // some code here for enabling drawing cache if necessary, etc
Bitmap screenshot = viewToCapture.getDrawingCache();

由此产生的屏幕快照显示自己想要什么除非 PopupWindowAlertDialog 当前处于打开状态。他们似乎不是在下根视图视图层次结构内。有一个替代的视图,我可以使用捕捉一切这就是在屏幕上吗?我不能对捕获应用程序,如通知栏之外的东西感兴趣。

解决方法 1:

请尝试使位图的活动窗口和对话框窗口,然后使用一个画布在海誓山盟层图像的位图。

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
    try {
         Bitmap bmOverlay = Bitmap.createBitmap(width, height,  bmp1.getConfig());
         Canvas canvas = new Canvas(bmOverlay);
         canvas.drawBitmap(bmp1, 0, 0, null);
         canvas.drawBitmap(bmp2, 0, 0, null);
         return bmOverlay;

 } catch (Exception e) { e.printStackTrace() }
赞助商