繁体   English   中英

在Android上截取屏幕截图

[英]Take a screenshot on Android

我正在尝试为Android构建一个自定义启动器,需要在用户按下主页按钮之后立即截取设备,因此在我的应用程序(启动器)返回前台之前。 我的想法是在我的启动器/活动/应用程序接管屏幕之前截取设备显示的任何内容。

我知道这样的事情需要root访问权限,但这不是问题。 谁能告诉我如何拍摄截图? 一些示例代码? 在线教程? 我看过网上但找不到任何有用的东西。 我试图简单地截取屏幕截图,就像Android Market上的gazillion应用程序已经使用root访问权限一样。 提前致谢 :-)

这是一个安全漏洞。 你应该有一个root设备才能做到这一点。

您可以将此代码与您自己的应用程序一起使用:(我从这个答案获得了另一个问题的代码: https//stackoverflow.com/a/5651242/237838

// image naming and path  to include sd card  appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + ACCUWX.IMAGE_APPEND;   

// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

OutputStream fout = null;
imageFile = new File(mPath);

try {
   fout = new FileOutputStream(imageFile);
   bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
   fout.flush();
   fout.close();
} catch (FileNotFoundException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
}

尝试查看此代码以获取其他帮助:

PS可以使用DDMS从Android获取屏幕截图,但这是另一个故事。

PPS如果要在下面的活动上透明地绘制启动器,则需要将像素格式设置为RGBA(仅处理OpenGL)并相应地进行渲染。 您无需截取底层活动的屏幕截图即可。

根植设备:使用扎根设备上运行此代码:

process = Runtime.getRuntime().exec("su -c cat /dev/graphics/fb0");
InputStream is = process.getInputStream();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM