以编程方式从服务中截取屏幕截图

时间:2012-05-07 12:02:08

标签: android image screenshot capture snapshot

这段代码很容易

Bitmap bitmap;
View v1 = MyView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

并且效果很好,但如果有活动就是这种情况。

如何从服务中截取屏幕截图?

我的目标是在一小时内截取屏幕截图,e.i以每小时关闭屏幕,例如在12中然后在1中然后在2中......依此类推

2 个答案:

答案 0 :(得分:6)

要为您的活动捕获 ScreenShot ,您需要View您的活动,以及您的服务中不存在哪一项,因此您必须制作一个TimerTask,它会在每个小时调用您的活动,并且您的活动会使用当前显示的视图对其进行响应,您可以从中捕获ScreenShot。 (我认为这只是你问题的解决方案。)

或者如果您想拍摄当前设备屏幕(任何应用程序)的ScreenShot,那么您必须 root权限,并阅读framebuffer以获取当前设备屏幕的原始数据屏幕然后将其转换为位图或您可以在服务中执行的任何图片文件。

答案 1 :(得分:3)

Android屏幕截图库(ASL)提供了拍摄手机屏幕快照的方法,无需签署您的应用程序或拥有对Android系统的特权(root)访问权限 Click here for ASL