【问题标题】:How to take screenshot programmatically on Android? [duplicate]如何在 Android 上以编程方式截取屏幕截图? [复制]
【发布时间】:2011-11-22 18:44:25
【问题描述】:

我想以编程方式截取全屏截图, 例如,android 主屏幕或菜单之一。 如何在我的应用程序中查看主屏幕? 我想以编程方式接受它!!! 是否需要root模式也没关系!

请帮助我,对不起我的英语!

【问题讨论】:

  • > 你试过 > this > 吗?或者在法语中你可以read > that 编辑:所以如果你想编程,你可以点击这些链接:-command line solution(在 Java 中可用)-你可能会得到一些信息here
  • 哦,快!刚刚意识到(当然是在发布我的答案之后-_-):您的意思是来自 android 应用程序吗?
  • 我想以编程方式接受它!!!
  • 是的,我做到了!但我想以编程方式接受它!!!

标签: android screenshot


【解决方案1】:

使用以下代码

Bitmap bitmap;
View v1 = MyView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

这里的 MyView 是我们需要包含在屏幕中的视图。

【讨论】:

【解决方案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 上的本指南上找到了此代码。您可以参考它以获取更多详细信息。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2023-03-25
    • 2023-03-04
    • 2016-03-18
    • 1970-01-01
    • 2011-04-06
    相关资源
    最近更新 更多