2011-06-29 61 views
3

有谁知道如何将HTML代码(包含图像)转换为Android上的图像?我知道如何使用JLabel/JEditorPane和BufferedImage在Java上创建它,但现在应该与Android相同。将HTML转换为Android上的图像(任何格式)

+0

我认为这是很好的解决方案:[http://stackoverflow.com/questions/8163202/convert-html-and-set-text-to-textview/12703962#12703962](http://stackoverflow.com/问题/ 8163202/convert-html-and-set-text-to-textview/12703962#12703962) – NrNazifi

+0

Hi peter。你有没有找到任何解决方案?我需要完全一样的你问.. –

回答

3

对于这个任务,我用了如下技巧: 我用的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(); 

我希望这可以提供帮助,但如果您以不同的方式解决问题,请发布。

+0

嗨,你能告诉我如何将此图片保存在SD卡? @Neo – koti

+0

@koti这可能是一个不同的问题。 –

+0

此功能已弃用,什么是替代? – joseRo

0

@ 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)方法。

相关问题