如何在 Android 上以编程方式截取屏幕截图? [复制]
Posted
技术标签:
【中文标题】如何在 Android 上以编程方式截取屏幕截图? [复制]【英文标题】:How to take screenshot programmatically on Android? [duplicate] 【发布时间】:2011-11-22 18:44:25 【问题描述】:我想以编程方式截取全屏截图, 例如,android 主屏幕或菜单之一。 如何在我的应用程序中查看主屏幕? 我想以编程方式接受它!!! 是否需要root模式也没关系!
请帮助我,对不起我的英语!
【问题讨论】:
> 你试过 > this > 吗?或者在法语中你可以read > that 编辑:所以如果你想编程,你可以点击这些链接:-command line solution(在 Java 中可用)-你可能会得到一些信息here 哦,快!刚刚意识到(当然是在发布我的答案之后-_-):您的意思是来自 android 应用程序吗? 我想以编程方式接受它!!! 是的,我做到了!但我想以编程方式接受它!!! 这个问题呢***.com/questions/2661536/screenshot-android 【参考方案1】:使用以下代码
Bitmap bitmap;
View v1 = MyView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
这里的 MyView 是我们需要包含在屏幕中的视图。
【讨论】:
这只是截取活动应用程序的屏幕截图。不是整个安卓屏幕。 @NguyenMinhBinh ..请看一下..***.com/questions/3067586/… .....这可能对您有所帮助...【参考方案2】:点击链接 https://code.google.com/p/android-screenshot-library/downloads/list 它允许您对任何屏幕进行完整截图,而不仅仅是您的应用
adb shell /system/bin/screencap -p /sdcard/img.png 这是一个shell命令,截图简单快速
试试这个
Process sh = Runtime.getRuntime().exec("su", null,null);
OutputStream os = sh.getOutputStream();
os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII"));
os.flush();
os.close();
sh.waitFor();
【讨论】:
我有 2 台设备(Android v2.2 和 v2.3.3)在/system/bin
目录中没有 screencap
文件。所以它不适合我。
@ares 你可以试试上面的链接。
你能描述一下我试过但我没有得到结果的 cz 吗?
@user2078315 你运行的是哪个版本的android,确保/system/bin里面有一个叫screencap的文件存在,然后在程序中运行上面的代码就可以了【参考方案3】:
在 adb shell 中,您可以使用命令作为
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
adb shell rm /sdcard/screen.png
我在 How to take a screenshot on Android 上的本指南上找到了此代码。您可以参考它以获取更多详细信息。希望这会有所帮助。
【讨论】:
以上是关于如何在 Android 上以编程方式截取屏幕截图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
您如何以编程方式在 Android ICS 及更高版本上截取屏幕截图?