以编程方式截取整个屏幕的屏幕截图 [英] Take screenshot programmatically of the whole screen

查看:36
本文介绍了以编程方式截取整个屏幕的屏幕截图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I'm taking screenshot as below:

 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;  
    }  

But there is a Edittext in my layout. I click it and keyboard pop up, but screenshot doesn't contain keyboard using this way. How can I take screenshot programmatically also which can also capture the keyboard?

解决方案

Read somewhere on the forums about another way: -

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();

You can try that out. Don't know if it works or not, just saved it for a rainy day :P.

EDIT:

Found the link to the post - How to take a screenshots?

User says, screenshots work for him. I think this should suit your requirement.

这篇关于以编程方式截取整个屏幕的屏幕截图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆