以编程方式截取整个屏幕的截图

lse*_*eeo 5 keyboard android screenshot

我正在截取如下截图:

 public static Bitmap takeScreenshot(Activity activity) {  
      View view = activity.getWindow().getDecorView();  
      view.setDrawingCacheEnabled(true);  
      view.buildDrawingCache();  
      Bitmap bitmap = view.getDrawingCache();  
      Rect rect = new Rect();  
      activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);  
      int statusBarHeight = rect.top;  
      int width = activity.getWindowManager().getDefaultDisplay().getWidth();  
      int height = activity.getWindowManager().getDefaultDisplay().getHeight();  
      Bitmap bitmap2 = Bitmap.createBitmap(bitmap, 0, statusBarHeight, width,  
          height - statusBarHeight);  
      view.destroyDrawingCache();  
      return bitmap2;  
    }  
Run Code Online (Sandbox Code Playgroud)

但是我的布局中有一个Edittext.我点击它并弹出键盘,但屏幕截图不包含使用这种方式的键盘.如何以编程方式截取屏幕截图?

小智 8

在论坛的某个地方阅读另一种方式: -

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();
Run Code Online (Sandbox Code Playgroud)

你可以尝试一下.不知道它是否有效,只是为了下雨天保存它:P.

编辑:

找到帖子的链接 - 如何拍摄截图?

用户说,截图适合他.我认为这应该符合您的要求.