Android 使用屏幕键盘捕获活动屏幕
我试图在android上捕捉我的活动屏幕。我使用的代码如下:Android 使用屏幕键盘捕获活动屏幕,android,screenshot,android-softkeyboard,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 && !
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);
}
如果屏幕上的键盘弹出,那么我在这个屏幕中只能看到我的活动窗口的一部分,其余部分是空白的
有没有办法获取我的应用程序的屏幕截图,包括屏幕键盘下的部分?很抱歉让您失望,但没有外部帮助,这是无法完成的。键盘不是应用程序布局的一部分
您的“最外层”视图是您已经捕捉到的DecorView
。这就是这项技术的范围
编辑:我现在无法尝试,但试一试:
View topmost = ((ViewGroup)
ctx.getWindow().getDecorView().findViewById(android.R.id.content)
).getChildAt(0);
topmost.setDrawingCacheEnabled(true);
Bitmap screenshot = topmost.getDrawingCache();
我开始告诉你,如果你有问题的屏幕截图被挤压,屏幕并没有被挤压。屏幕截图上仅显示屏幕键盘上方的对象。其他所有内容(即键盘下的对象)均为空。我也需要在屏幕截图上显示它们。你的意思是我无法捕获屏幕键盘下的对象?在这种情况下,你说的外部援助是什么意思?而且,我不需要捕捉键盘,只要是我窗口上的任何东西,即使它在某个东西下面。现在不能说,但似乎我找不到那个方法。这是View的方法吗?我的错误:DrawingCache
。将编辑并给您一个示例进行尝试。很抱歉,我自己没有这样做,但我这里没有安卓开发设置。现在屏幕截图被修剪。我在galaxy tab 2上测试,用我的代码,我得到了一个带有空白部分的图像1024x600,其中是屏幕键盘,现在我得到了一个1024x173图像。所以,结果是一样的,我无法得到对象,它们被放在屏幕键盘下。