此方法是通过view的方式获取当前activity的屏幕截图相对简单容易理解。
首先通过下面的函数获取Bitmap格式的屏幕截图:
1 public Bitmap myShot(Activity activity) {
2 // 获取windows中最顶层的view
3 View view = activity.getWindow().getDecorView();
4 view.buildDrawingCache();
5
6 // 获取状态栏高度
7 Rect rect = new Rect();
8 view.getWindowVisibleDisplayFrame(rect);
9 int statusBarHeights = rect.top;
10 Display display = activity.getWindowManager().getDefaultDisplay();
11
12 // 获取屏幕宽和高
13 int widths = display.getWidth();
14 int heights = display.getHeight();
15
16 // 允许当前窗口保存缓存信息
17 view.setDrawingCacheEnabled(true);
18
19 // 去掉状态栏
20 Bitmap bmp = Bitmap.createBitmap(view.getDrawingCache(), 0,
21 statusBarHeights, widths, heights - statusBarHeights);
22
23 // 销毁缓存信息
24 view.destroyDrawingCache();
25