您的位置:首页 > 移动开发

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

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

1.先给一段Html的string:

private static final String content="<p><font color=\\\"#ff0000\\\">富文本 this is a test</font></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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: