WebView加载富文本(解决富文本内部图片不能加载,一直闪屏问题)的方法

最近需要在Android上显示富文本,看了网上有两种方法,一种是用TextView一种是WebView,用TextView有一个问题,就是图片的路径问题,因为html文本中有可能给的图片的路径未必是全路径,可能需要自己拼接,会比较麻烦,这里使用WebView就能容易的解决,不过WebView就比较耗内存和流量了,下面看代码吧:

1.先给一段Html的string:

    private static final String content="<p><font color=\\\"#ff0000\\\">富文本 this is a testfont>p>\n" + "<p><img src=\"/D/1/F/1_qq_24956515.jpg\" alt=\"Image\"/>p>" ;  

2.设置好WebView:

   private void setWebView(String content) {
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setBuiltInZoomControls(true);
        webview.getSettings().setDisplayZoomControls(false);
        webview.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); //取消滚动条白边效果
        webview.setWebChromeClient(new WebChromeClient());
        webview.setWebViewClient(new WebViewClient());
        webview.getSettings().setDefaultTextEncodingName("UTF-8") ;
        webview.getSettings().setBlockNetworkImage(false);
        if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){
            webview.getSettings().setMixedContentMode(webview.getSettings()
                    .MIXED_CONTENT_ALWAYS_ALLOW);  //注意安卓5.0以上的权限
        }
        webview.loadDataWithBaseURL(null, getNewContent(content), "text/html", "UTF-8", null);
    }

3.关于图片的适屏:需要用到jsoup jar包,请自行下载

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
private String getNewContent(String htmltext){  

        Document doc=Jsoup.parse(htmltext);  
        Elements elements=doc.getElementsByTag("img");  
        for (Element element : elements) {  
            element.attr("width","100%").attr("height","auto");  
        }  

        return doc.toString();  
    } 

4.解决富文本内部图片不能加载,一直闪屏问题

 private String getNewContent(String htmltext) {

        Document doc = Jsoup.parse(htmltext);
        Elements elements = doc.getElementsByTag("img");
        for (Element element : elements) {
            if (element.className() != null && element.className().length() > 0)
                element.attr("width", "100%").attr("height", "auto");

        }

        return doc.toString();
    }

5.最后提醒一下,别忘了设置访问网络的权限:

<uses-permission android:name="android.permission.INTERNET"/>

jsoup下载地址:http://download.csdn.net/detail/huangxiaoguo1/9918434

你可能感兴趣的:(Android图片加载)