我正在寻找一种以编程方式截取android设备截图的方法。我已经在stackoverflow中查看了几个涉及运行活动截图的解决方案。我想通过同时按下音量降低和电源按钮来模仿Android中触发的默认行为。请注意,我不想截取我自己的活动或运行活动的屏幕截图。例如,我希望用按钮启动一个对话框活动,当点击该按钮时,我完成了我的活动,并启动了一个后台任务,该任务将截取包括状态栏在内的可见部分的屏幕截图,例如保持音量减小和权力。我如何实现这一目标?
答案 0 :(得分:-2)
如果您正在拍摄另一个活动的屏幕截图,您将以某种方式获得对视图的引用,该视图包含您要截屏的屏幕部分或仅捕获整个屏幕。如果它是整个屏幕,你可以用
获得// get the top level view from the activity in this context
View theView = getWindow().getDecorView();
然后,要将该视图捕获为位图,您可以使用
// Take the Screen shot of a View
public static Bitmap takeScreenshot(final View theView) {
theView.setDrawingCacheEnabled(true);
return theView.getDrawingCache();
}
// Release the drawing cache after you have captured the Bitmap
// from takeScreenshot()
public static void clearScreenshotCache(final View theView) {
theView.setDrawingCacheEnabled(false);
}
从那里,您可以通过调用位图上的.compress将位图保存为JPEG或PNG。
至于在后台线程上运行任务,有足够的文档介绍了here等几种方法。
希望能让你开始!