Android开发中实现整个屏幕截图,首先通过activity对象的getwindow()方法获得整个屏幕的window对象,再通过整个屏幕的window对象的getDecorView()方法获得整个屏幕的view,最后截图的实现,也就是将view转换成bitmap,然后,将bitmap保存为图片文件。

Java代码
  1. public static Bitmap takeScreenShot(Activity act) {    
  2.     if (act == null || act.isFinishing()) {    
  3.         Log.d(TAG, "act参数为空.");    
  4.         return null;    
  5.     }    
  6.    
  7.     // 获取当前视图的view    
  8.     View scrView = act.getWindow().getDecorView();    
  9.     scrView.setDrawingCacheEnabled(true);    
  10.     scrView.buildDrawingCache(true);    
  11.    
  12.     // 获取状态栏高度    
  13.     Rect statuBarRect = new Rect();    
  14.     scrView.getWindowVisibleDisplayFrame(statuBarRect);    
  15.     int statusBarHeight = statuBarRect.top;    
  16.     int width = act.getWindowManager().getDefaultDisplay().getWidth();    
  17.     int height = act.getWindowManager().getDefaultDisplay().getHeight();    
  18.    
  19.     Bitmap scrBmp = null;    
  20.     try {    
  21.         // 去掉标题栏的截图    
  22.         scrBmp = Bitmap.createBitmap( scrView.getDrawingCache(), 0, statusBarHeight,    
  23.                 width, height - statusBarHeight);    
  24.     } catch (IllegalArgumentException e) {    
  25.         Log.d("""#### 旋转屏幕导致去掉状态栏失败");    
  26.     }    
  27.     scrView.setDrawingCacheEnabled(false);    
  28.     scrView.destroyDrawingCache();    
  29.     return scrBmp;    
  30. }  

 

本文发布:Android开发网
本文地址:http://www.jizhuomi.com/android/example/467.html
2015年9月6日
发布:鸡啄米 分类:Android开发实例 浏览: 评论:1