webView加载html图片遇到的问题解决


Posted in HTML / CSS onOctober 08, 2019

当解析接口 突然出现一个xml形式的html格式的字符串的时候不用慌张,正常去交给webview的loaddata方法来解决即可,但是今天说的是一组图片字符串

<img src="//yanxuan.nosdn.127.net/75c55a13fde5eb2bc2dd6813b4c565cc.jpg">
         <img src="//yanxuan.nosdn.127.net/e27e1de2b271a28a21c10213b9df7e95.jpg">
         <img src="//yanxuan.nosdn.127.net/9d413d1d28f753cb19096b533d53418d.jpg">
         <img src="//yanxuan.nosdn.127.net/64b0f2f350969e9818a3b6c43c217325.jpg">
         <img src="//yanxuan.nosdn.127.net/a668e6ae7f1fa45565c1eac221787570.jpg">
         <img src="//yanxuan.nosdn.127.net/0d4004e19728f2707f08f4be79bbc774.jpg">
         <img src="//yanxuan.127.net/79ee021bbe97de7ecda691de6787241f.jpg">

因为给出的网址不包含http:// 所以怎么解都解不出来的 我们只需要拼接一下这个数据 然后在利用jsoup来适配一下屏幕即可

implementation 'org.jsoup:jsoup:1.10.2'

解析方法

public static String formatHtml(String str){
//        String httpStr="";
//        String divStr="<div>$content</div>";
//        String ulStr="<ul style=\"line-style:none\">$ul</ul>";
        String[] split = str.split(">");
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < split.length; i++) {
            String replace = split[i].replace("<img src=\"", "<img src=\"http:");
            sb.append(replace+">");
//            sb.append("<li>"+ replace +">"+"</li>");
        }
//        ulStr=ulStr.replace("$ul", sb.toString());
//        divStr=divStr.replace("$content", ulStr);


        return sb.toString();

    }

当时是想着吧该html片段还原一个标准的div嵌套无序列表的形式 结果发现不用这么麻烦依然好用 下面是代码

//  content就是哪个html数据
       String content = t1.getData().getContent();
  //进行拼接http:
            String s = formatHtml(content);
//jsoup适配屏幕大小
            Document doc = Jsoup.parse(s);

            Elements elem_img = doc.getElementsByTag("img");
// 图片自适应屏幕
            if (elem_img.size() != 0) {
                for (Element el_img : elem_img) {
                    el_img.attr("style", "width:100%");
                }
            }
//适配之后转换回字符串
            String s1 = doc.toString();

//以下这些设置不用设置 设置效果也不如jsoup适配后的效果
//            WebSettings settings = webView.getSettings();
//            settings.setJavaScriptEnabled(true);
//            settings.setUseWideViewPort(true);//关键点
//            settings.setLoadWithOverviewMode(true);
 //在webview内部打开浏览器
            webView.setWebViewClient(new WebViewClient());
//            settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
//            settings.setDefaultTextEncodingName("utf-8") ;
//以下俩种方式效果一样 用哪个都行
            webView.loadData(s1, "text/html","utf-8");
//            webView.loadDataWithBaseURL(null,s1, "text/html",  "utf-8", null);
            Log.i("tag", "subjectPage 1Result: "+s);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS心形加载的动画源码的实现
Mar 09 HTML / CSS
用CSS3绘制三角形的简单方法
Jul 17 HTML / CSS
6种非常炫酷的CSS3按钮边框动画特效
Mar 16 HTML / CSS
详解css3使用transform出现字体模糊的解决办法
Oct 16 HTML / CSS
几个解决兼容IE6\7\8不支持html5标签的几个方法
Jan 07 HTML / CSS
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
Jan 30 HTML / CSS
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
Apr 22 HTML / CSS
HTML5新增的表单元素和属性实例解析
Jul 07 HTML / CSS
HTML5 video标签(播放器)学习笔记(一):使用入门
Apr 24 HTML / CSS
H5调用相机拍照并压缩图片的实例代码
Jul 20 HTML / CSS
AmazeUI 评论列表的实现示例
Aug 13 HTML / CSS
css中z-index: 0和z-index: auto的区别
Aug 23 HTML / CSS
使用postMessage让 iframe自适应高度的方法示例
Oct 08 #HTML / CSS
基于 HTML5 WebGL 实现的医疗物流系统
Oct 08 #HTML / CSS
html2canvas生成清晰的图片实现打印的示例代码
Sep 30 #HTML / CSS
html5视频媒体标签video的使用方法及完整参数说明详解
Sep 27 #HTML / CSS
Html5实现首页动态视频背景的示例代码
Sep 25 #HTML / CSS
HTML5自定义元素播放焦点图动画的实现
Sep 25 #HTML / CSS
使用Html5中的cavas画一面国旗
Sep 25 #HTML / CSS
You might like
php基础知识:类与对象(1)
2006/12/13 PHP
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
[原创]PHP实现SQL语句格式化功能的方法
2017/07/28 PHP
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
js仿京东轮播效果 选项卡套选项卡使用
2017/01/12 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
原生js实现trigger方法示例代码
2019/05/22 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
JavaScript函数Call、Apply原理实例解析
2020/02/17 Javascript
分享8个JavaScript库可更好地处理本地存储
2020/10/12 Javascript
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
在Python程序中操作文件之flush()方法的使用教程
2015/05/24 Python
Python3安装pip工具的详细步骤
2019/10/14 Python
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
淘宝店铺营销方案
2014/02/13 职场文书
道德模范先进事迹
2014/02/14 职场文书
银行竞聘上岗演讲稿
2014/09/12 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
教师个人成长总结
2015/02/11 职场文书
税务会计岗位职责
2015/04/02 职场文书
春晚观后感
2015/06/11 职场文书
活动宣传稿范文
2015/07/23 职场文书
检讨书之工作不认真
2019/08/14 职场文书
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
Mysql服务添加 iptables防火墙策略的方案
2021/04/29 MySQL
《游戏王:大师决斗》将推出新卡牌包4月4日上线
2022/03/31 其他游戏
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
MySQL数据库Innodb 引擎实现mvcc锁
2022/05/06 MySQL