【发布时间】:2013-05-25 09:57:05
【问题描述】:
我截图如下:
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;
}
但我的布局中有一个 Edittext。我单击它并弹出键盘,但屏幕截图不包含使用这种方式的键盘。如何以编程方式截取屏幕截图,也可以捕获键盘?
【问题讨论】:
-
键盘不是您的应用程序布局的一部分。您正在拍摄布局(视图)的屏幕截图。键盘不是您布局的一部分。这就是为什么你看不到它
-
我知道这一点。关于如何截取整个手机屏幕的任何想法?
-
试试下面的答案,但如果你在设备上测试,你需要同样的根。这是不对的,因为您不能要求用户根他们的设备。您可以尝试在您的应用程序中创建自己的自定义键盘。然后使用上面的屏幕截图
-
同样的问题对屏幕上的视频视图有效。当使用上述方法捕获屏幕截图时,屏幕上的视频视图不包含在屏幕截图中,而是一个空白而不是它。我需要一种机制来模拟您按下某些设备按钮(通常是同时按下电源和音量按钮)的影响,并且它可以截取屏幕上的所有内容(包括键盘、视频视图等)。有什么想法吗?
标签: android keyboard screenshot