在Android上将HTML转换为图像(任何格式)

在Android上将HTML转换为图像(任何格式),android,html,image,Android,Html,Image,有人知道如何在Android上将html代码(包含图像)转换为图像吗?我知道如何使用JLabel/JEditorPane和BufferedImage在Java上实现它,但现在应该使用Android实现同样的效果。对于此任务,我使用以下技巧: 我使用webview解析HTML,并调用WevView对象上的capturePicture方法来提取HTML图片,因此我可以建议您使用以下sniplet: WebView wv = new WebView(this); wv.loadData("<ht

有人知道如何在Android上将html代码(包含图像)转换为图像吗?我知道如何使用JLabel/JEditorPane和BufferedImage在Java上实现它,但现在应该使用Android实现同样的效果。

对于此任务,我使用以下技巧: 我使用webview解析HTML,并调用WevView对象上的capturePicture方法来提取HTML图片,因此我可以建议您使用以下sniplet:

WebView wv = new WebView(this);
wv.loadData("<html><body><p>Hello World</p></body></html>");
Picture p = wv.capturePicture();
WebView wv=新的WebView(此);
wv.loadData(“helloworld

”); Picture p=wv.capturePicture();

我希望这能有所帮助,但如果你有不同的解决方法,请发布。

我对@Neo1975的答案很满意,但为了避免使用不推荐的方法
WebView.capturePicture()
你可以使用以下方法捕获WebView的内容

/**
* WevView screenshot
*
* @param webView
* @return
*/
private static Bitmap screenshot(WebView webView) {
  webView.measure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED),View.MeasureSpec.makeMeasureSpec(0, View.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;
}

它背后的思想是使用
WebView.draw(Canvas)
方法。

我认为这是一个很好的解决方案:嗨,彼得。你找到解决这个问题的办法了吗?我需要的和你问的一模一样这能回答你的问题吗?嗨,你能告诉我如何将这张照片保存在sd卡中吗@Neo@koti这可能是另一个问题。此函数已弃用,有什么替代方案?