使用屏幕键盘捕获活动屏幕

时间:2013-02-08 17:37:12

标签: android screenshot android-softkeyboard

我想在android上捕捉我的活动屏幕。我使用下面的代码:

View root = this.activity.getWindow().getDecorView().getRootView();

Bitmap b = Bitmap.createBitmap(root.getWidth(), root.getHeight(), Config.RGB_565);
Canvas c = new Canvas(b);
root.draw(c);

if (b != null && !b.isRecycled()) {
    this.screen = Bitmap.createBitmap(b);
}

如果弹出屏幕键盘,那么this.screen中我只有活动窗口的可见部分,其余部分为空白。

有没有办法获取我的应用程序的屏幕截图,包括屏幕键盘下的部分?

1 个答案:

答案 0 :(得分:2)

我很抱歉让你失望,但没有外援就无法做到这一点。键盘根本不是应用程序布局的一部分。

您的“最外层”视图是DecorView,您已经在捕捉它。这就是这种技术。

编辑:我现在无法尝试,但请试一试:

View topmost = ((ViewGroup)
     ctx.getWindow().getDecorView().findViewById(android.R.id.content)
).getChildAt(0);

topmost.setDrawingCacheEnabled(true);

Bitmap screenshot = topmost.getDrawingCache();