我知道有很多关于捕获屏幕截图的问题,我已经检查了大部分屏幕截图。他们有相同的答案(代码变化很小)。
我有以下截图捕获方法:
@NonNull
public static Bitmap takeScreenShot(Window window) throws IOException {
final View rootView = window.getDecorView().getRootView();
final boolean drawingCacheEnabled = rootView.isDrawingCacheEnabled();
rootView.setDrawingCacheEnabled(true);
try {
return Bitmap.createBitmap(rootView.getDrawingCache());
} finally {
rootView.setDrawingCacheEnabled(drawingCacheEnabled);
}
}
你可以像这样使用它:takeScreenShot(getActivity().getWindow())
然而,这些方法有几个局限性:
打开硬件加速时,启用
绘图缓存对渲染没有影响,因为系统使用了一个 不同的加速机制忽略了旗帜
所以我的问题是,是否有任何解决方案没有生根可以至少解决我的一些问题?
答案 0 :(得分:1)
查看以下GitHub仓库(不是我的!):https://github.com/AndroidDeveloperLB/ScreenshotSample
此外,以下内容将非常有用: How to properly take a screenshot, globally?