我想在代码中截取我的应用程序的屏幕截图。首先,我需要获取当前视图,但getCurrentFocus()方法总是返回 null。我能做些什么?
问问题
2080 次
1 回答
0
请注意,您只能截取您在视图中呈现的内容,而不能截取当时屏幕上出现的其他活动或应用程序。
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;
}
于 2013-08-02T11:48:47.133 回答