繁体   English   中英

截取Android屏幕截图并保存到SD卡

[英]Take Screenshot of Android screen and save to SD card

关于捕获Android应用程序的屏幕截图,这里有几个问题。 但是,我还没有找到一个关于如何使用android SDK或任何其他方法以编程方式截取屏幕截图的可靠解决方案。

所以我想我会再次提出这个问题,希望能找到一个好的解决方案,希望能够捕获可以保存到SD卡或类似地方的全长图像。

我提供任何帮助

除非已植根,否则无法直接在设备/仿真器上进行此操作。

说实话,我需要的是仿真器,因为这是用于PC上的测试应用程序

这听起来像是monkeyrunner的工作。

monkeyrunner工具可以用adb命令,[python脚本]为你做的工作

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
//waits for connection
device = MonkeyRunner.waitForConnection()
//take the current snapshot
device.takeSnapshot()
//stores the current snapshot in current dir in pc
device.writeToFile('current.png')\
//copy it to the sd card of device
os.subprocess.call('adb push current.png /sdcard/android/com.test.myapp/current.png')

注意:调用此jython脚本文件
monkeyrunner.bat <文件名>

你很可能对这个答案不满意,但我见过的唯一一个涉及使用本机代码或执行本机命令。

编辑:我以前没见过这个。 你试过吗?: http//code.google.com/p/android-screenshot-library/

Edit2:检查了那个库,这也是一个糟糕的解决方案。 需要您从PC启动服务。 所以我最初的答案仍然是:)

编辑3:您应该能够通过执行与此类似的操作将视图另存为图像。 您可能需要稍微调整一下,以便获得视图的宽度/高度。 (我正在给布局充气,并在布局代码时指定宽度/高度)

View content = getView();
Bitmap bitmap = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
File file = new File(pathAndFilename);              
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, ostream);
ostream.close();

你可以查看http://codaset.com/jens-riboe/droidatscreen/wiki (在http://blog.ribomation.com/2010/01/droidscreen/上写一下):这是一个使用的Java库adb捕获屏幕截图。 我已经能够(用大量的肘部油脂)修改源,让我自动捕捉定时系列的屏幕截图(我用于演示视频)。

您可以在http://pastebin.com/hX5rQsSR上看到类结构

编辑:您将调用它(在捆绑所有要求后),如下所示:

java -cp DroidScreen.jar --adb“” - device“” - prefix“” - interval

暂无
暂无

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

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