我有一个webview,我想变成我的应用程序的另一部分的位图。从Webview创建带有内容的屏幕的位图Android
目前,我可以获取将在屏幕上呈现的webview部分的位图,但是我的位图需要包含页面的所有内容。
将webview的layoutParams设置为更大尺寸会导致原始图像加载到更大的画布上。
这是我目前的执行:
FrameLayout.LayoutParams tempParams= new FrameLayout.LayoutParams(2000,4000);
_webView.setLayoutParams(tempParams);
_webView.layout(0,0,2000,4000);
int width = _webView.getWidth();
int height = _webView.getHeight();
_webView.postDelayed(new Runnable() {
@Override
public void run() {
Bitmap bitmap = Bitmap.createBitmap(_webView.getWidth(), _webView.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
_webView.draw(canvas);
}
},100);
我一直遵守以下的教程和他们似乎并没有解决我的问题。
Rendering Android webview to bitmap, html5 javascript , callback issue
Generate bitmap from HTML in Android
我想使用一个PictureListener和capturePicture(),但那些已过时。
感谢您的回应!我应该在哪里将WebView高度设置为wrap_contents?我目前使用的是我没有设计的自定义WebView,因此一旦我完成了我的图像,WebView的属性需要被恢复。 – Matt
在您将要加载内容之前,肯定会有。与您已经使用的代码相同,只需使用“WRAP_CONTENT”常量而不是特定的高度值。 –
这似乎不适用于我。我仍然会看到已经显示在设备上的webview部分,而不是整个网页。不过谢谢。 – Matt