如何在安卓模拟器中进行截屏

48

从Android 4.0开始,它支持使用音量下键+电源键来截屏并保存到图库中。但是在Android模拟器中如何实现呢。

我知道在Eclipse中有一个“截屏”按钮,但这不是我想要的。我需要在模拟器中进行截屏并保存在模拟器中。


我认为没有其他方法可以做到这一点。(至少我没有想到其他方法。) - Ahmad
你想以编程方式处理它吗? - Shajeel Afzal
我正在做的是,在截屏后为共享意图添加一个应用选项来处理截屏。我想在模拟器中测试它。 - lseeo
可能是重复的问题:如何使用Eclipse拍摄模拟器截图? - Ozair Kafray
如果您使用的是Android Studio 2.0或更高版本,则此方法可以正常工作: https://dev59.com/NmEi5IYBdhLWcg3wwegN#35454101 - Anish Hirlekar
10个回答

76

7
不错。我还发现了一个单行命令:adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' > screen.png - Radu Simionescu
在模拟器中,生成的 PNG 文件大小为 0 字节。有其他解决方法吗? - markj
1
请注意,如果启用了“使用主机GPU”选项,则此方法将无法正常工作。截图将是一个空的PNG文件(0字节)。关闭“使用主机GPU”选项,它就可以正常工作,尽管模拟器会非常缓慢(并且在大屏幕尺寸下可能甚至无法启动)。 - Jelle Fresen
不得不花点时间找到可写目录,使用一些adb shell ls -l确实有所帮助 - 然后这个工作非常好。 - MortenSickel
在这里找到了另一个一行代码的解决方法链接 - Aneesh
一个更长的“一行代码”用于将带时间戳的屏幕截图保存到当前目录:fname="screenshot-date +%Y-%m-%d-%H%M_%S.png" && adb shell /system/bin/screencap -p "/sdcard/$fname" && adb pull "/sdcard/$fname" .(确保包含最后的点)。 - ccpizza

75

只需点击照片图标即可在Android模拟器中截屏

这里输入图片描述


6
这是相关的答案。 - Nazeel
3
这样更有意义。提供了更多选择。感谢提供信息。 - aphoe
2
这是最好的答案。非常直接明了。谢谢@birigy。 - BenJaminSila
1
不起作用。Android模拟器看起来完全不同,也没有那个按钮。 - Brian Knoblauch
3
OP指定了“我需要在模拟器中保存图像”,使用这种方法如何在模拟器中保存图像? 请问需要翻译其他内容吗? - FeleMed

19

在新的模拟器中,您可以通过点击相机图标来完成此操作。默认情况下,它保存在桌面上。

输入图像描述


1
这个方案没有回答原始请求:“我需要在模拟器中保存截图。” 这个解决方案将把截图保存到您的桌面,而不是模拟器。 - Awnage

7

打开窗口 > 显示视图 > 其他。在新打开的对话框中,在 Android 类别下,选择设备。

现在在设备面板上,单击如图所示的按钮,即可完成截屏。


在哪张图片中显示?我找到了图标,但从答案中不清楚它在哪里。 - Martin Sherburn

5
你可以使用DDMS来截取屏幕截图。在DDMS中,选择设备,然后选择屏幕截图选项。
编辑: 据我所知,这不可能,但这种情况完全取决于模拟器映像。设备热键可能适用于某些操作系统映像。请尝试从模拟器link使用相同的按键组合。
如果您的模拟器使用工厂或相同的映像,则应该是可能的。您可以为您的模拟器下载工厂映像。从此link查看可用的nexus映像,也可以从制造商网站下载映像。
或者,您可以按以下方式进行屏幕截图。
View content = findViewById(R.id.myView);
content.setDrawingCacheEnabled(true);
Bitmap bitmap = content.getDrawingCache();

然后将其保存在任何您喜欢的地方。这不是最优解决方案,它只会打印出您视图中的内容。


2
明确表示这不是一个解决方案。 - dymmeh
我认为这个不起作用。我想在模拟器内截屏,这样我就可以直接分享到其他应用程序了。 - lseeo

5

在左侧菜单中长按电源按钮,然后您将有截屏选项。 在此输入图片描述


这是在支持它的Android版本上的适当解决方案。旧版本可能只会给您“关机”和“重新启动”选项。 - Awnage

4
如果您打开Android视图“设备”(在窗口 -> 显示视图 -> 其他... -> Android -> 设备下),则可以拍摄屏幕截图。单击要拍摄屏幕截图的设备或模拟器,然后单击“屏幕截图”按钮(它看起来像一个小图片,并且应该在停止标志按钮旁边)。偶尔设备不会立即加载图片;有时您需要关闭/重新打开屏幕截图窗口。这相当于通过DDMS拍照,但您可以在Eclipse中完成而不是打开另一个应用程序。

1
#!/bin/bash -f
while : ; do

echo "press the number of the screenshot to capture";

read i

adb shell /system/bin/screencap -p /sdcard/screenshot.png
adb pull /sdcard/screenshot.png "${i}.png"

done

ctrl-c

0

您可以在模拟器中按下快捷键,即ctlr + S来截取屏幕截图。

此外,模拟器上还提供了一个按钮来截取屏幕截图。

只需按下此按钮,您就可以获得模拟器的屏幕截图。

希望这对您有所帮助。


这在 Mac 上不起作用。 - Carl Anderson

0
  1. 进入模拟器,然后按下:

ctrl + s

保存截图。

希望能够正常工作。


在 Mac 上无法运行。 - Carl Anderson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接