当我点击通知栏时,我希望应用程序捕获当前屏幕。但我希望应用程序捕获“通知栏消失后”。我希望捕获的屏幕能够在之后保存并加载并显示出来。我该怎么办?
答案 0 :(得分:0)
例如代码只做“新全屏活动”模板,这将显示如何显示/隐藏工具栏并全屏显示。
然后只修改代码,使其不会发生在计时器上,而是将其移动到放置在工具栏本身上的触摸侦听器。
最后,一旦淡入淡出消失(如果你愿意,你可以立即做),然后简单地制作你自己的截图。如果你想要的话,有很多很棒的库会为你做这件事,或者你可以使用我在这个名为ImageHelper的类中放入的简单代码:
public static Bitmap takeScreenshotOfView(Activity context, Bitmap.CompressFormat compressFormat){
Bitmap screenshot = null;
try {
// create bitmap screen capture
View v1 = context.getWindow().getDecorView().getRootView();
v1.setDrawingCacheEnabled(true);
screenshot = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
File imageFile = new File(context.getFilesDir() + File.separator + "A35_temp" + File.separator + "screenshot_temp");
FileOutputStream outputStream = new FileOutputStream(imageFile);
int quality = 100;
screenshot.compress(compressFormat, quality, outputStream);
outputStream.flush();
outputStream.close();
} catch (Throwable e) {
// Several error may come out with file handling or OOM
e.printStackTrace();
}
return screenshot;
}
就像使用它一样:
Bitmap screenshot = ImageHelper.takeScreenshotOfView(this, Bitmap.CompressFormat.JPEG);
接下来为预览启动一个全新的自定义活动,但默认情况下使用工具栏隐藏和全屏ImageView以及共享覆盖按钮或底部的任何内容。