WebView加载富文本(解决富文本内部图片不能加载,一直闪屏问题)的方法
2017-08-02 10:02
681 查看
最近需要在Android上显示富文本,看了网上有两种方法,一种是用TextView一种是WebView,用TextView有一个问题,就是图片的路径问题,因为html文本中有可能给的图片的路径未必是全路径,可能需要自己拼接,会比较麻烦,这里使用WebView就能容易的解决,不过WebView就比较耗内存和流量了,下面看代码吧:
1.先给一段Html的string:
2.设置好WebView:
3.关于图片的适屏:需要用到jsoup jar包,请自行下载
4.解决富文本内部图片不能加载,一直闪屏问题
5.最后提醒一下,别忘了设置访问网络的权限:
jsoup下载地址:http://download.csdn.net/detail/huangxiaoguo1/9918434
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
相关文章推荐
- sdwebImageview 在https 中不能加载图片时解决方法
- Android WebView加载Html文本不能适配,以及图片中间有空白的问题
- 通过webView全屏加载高清大图片,解决不能全屏高清加载图片问题
- webview加载页面,JS方法不能加载的问题解决
- 解决CircleImageView不能用Afinal的FinalBitmap加载网络图片问题
- Android WebView加载html文本时,图片太大不能适配屏幕
- eWebeditor在IE8、IE9中插入图片按钮不能使用问题的解决方法
- spring boot 本地图片不能加载(图片路径)的问题及解决方法
- webview加载htmlstring里有工程里的图片解决方法
- 解决webview闪屏,加载html富文本,设置字体view自动恢复
- fragment加载webView与ViewPager所带来的滑动冲突问题解决方法
- android中webView加载H5,JS不能调用问题的解决
- webView加载Html5按钮,JS不能调用问题的解决
- 解决android 5.0 webview不能加载http与https混合内容的问题
- webview加载大图片,左右滑动问题解决
- 解决Android4.4 webview 图片如何自适应 之前的方法失效问题
- android通过webView加载第三方h5应用,部分手机加载部分图片失败和播放部分视频失败的解决方法
- webview加载网页图片不能充满屏的问题
- Android WebView加载html文本时,图片太大不能适配屏幕