gpt4 book ai didi

android - 如何在 Android 中捕获 webview 到位图?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:35 24 4
gpt4 key购买 nike

我有一个 webview,我需要向下滚动才能查看所有内容。现在,我想捕获整个 webview 到位图。

我找了很多次。人们建议我使用函数 capturePicture()。但是,此功能已弃用。那么,我还可以使用哪些其他方法来实现我的目标?

谢谢大家。

最佳答案

Android L,您需要在创建任何 WebView 之前调用 WebView.enableSlowWholeDocumentDraw()。也就是说,如果您的布局中有任何 WebView,请确保在调用 onCreate() 中的 setContentView() 之前调用此方法。
链接Mikhail Naganov : https://stackoverflow.com/a/30084485/703225

@Override
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
WebView.enableSlowWholeDocumentDraw();
}
...
setContentView(layout);
...
...
}

然后:

/**
* WevView screenshot
*
* @param webView
* @return
*/
public static Bitmap screenshot(WebView webView, float scale11) {
try {
float scale = webView.getScale();
int height = (int) (webView.getContentHeight() * scale + 0.5);
Bitmap bitmap = Bitmap.createBitmap(webView.getWidth(), height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
webView.draw(canvas);
return bitmap;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

如果你不使用 webView.getScale(),还有:

public static Bitmap screenshot2(WebView webView) {
webView.measure(MeasureSpec.makeMeasureSpec(
MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED),
MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
webView.layout(0, 0, webView.getMeasuredWidth(), webView.getMeasuredHeight());
webView.setDrawingCacheEnabled(true);
webView.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(webView.getMeasuredWidth(),
webView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
int iHeight = bitmap.getHeight();
canvas.drawBitmap(bitmap, 0, iHeight, paint);
webView.draw(canvas);
return bitmap;
}

关于android - 如何在 Android 中捕获 webview 到位图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20900196/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com