使用Java代码在Android上捕获屏幕截图

可能重复:
截图Android

我想以编程方式捕获屏幕截图(不是我的视图的屏幕截图)并创建了一个应用程序来拍摄我的视图的屏幕截图。

我试图通过使用Java代码捕获设备屏幕截图(如果用户选择任何图像文件)(我想创建服务和服务,我们可以拍照,但我不知道如何实现这一点)。

我发现了一些使用帧缓冲区fb0的本机代码,但我对此非常了解,不知道如何使用它。

这是一个解决方案,可以截取屏幕截图并将其写入SD卡

设置Root布局:

View content = findViewById(R.id.layoutroot); content.setDrawingCacheEnabled(true); 

获取渲染视图的函数:

 private void getScreen() { View content = findViewById(R.id.layoutroot); Bitmap bitmap = content.getDrawingCache(); File file = new File( Environment.getExternalStorageDirectory() + "/test.png"); try { file.createNewFile(); FileOutputStream ostream = new FileOutputStream(file); bitmap.compress(CompressFormat.PNG, 100, ostream); ostream.close(); } catch (Exception e) { e.printStackTrace(); } } 

记得加

   

到你的AndroidManifest。