最近做项目有一个详情页,返回的是html代码。注意不是html链接。里边图文混排。用textview 显示,发现以下问题。
- 文字没法两端对齐。
2.图片不居中显示。
3.原html里边字体的大小分好几种,textview显示出来特丑。但是设置textview 的字体大小。其实不没有卵用。
4。图片和文字上下贴的很紧。
最后没办法,用webview来展示吧。其实webview展示还是有个坑。直接丢进去会是乱码。乱码的解决方案网上有。
下面是人家的代码。
viewWebVeiw.loadData(html,"text/html; charset=UTF-8",null);
下面就是 我们如何引用 css属性,修改html代码里边的值解决我们上面的问题了。
String linkCss="<style type=text/css>" +
"\t\tbody img{width:100%!important;height: auto!important;padding-top: 50px!important;padding-bottom: 50px!important;}\n\n" +
"\t\tbody {font-size:25!important;}\n" +
"\t\tbody span{font-size: 25!important;}\n" +
"\t\tbody p{font-size: 25!important;}\t\t\t\t\n" +
"\t\t</style>\n";
上面的字符串 我们用的时候 要添加早我们要展示的html代码中去。 这样:
String html = "<html><header>" + linkCss + "</header>"+"<body style=\"text-align:justify;margin:0;\">" + content + "</body></html>";
其中 content 是我们后台返回的html代码 "text-align:justify; 实现文字两端对齐。
linkCss 中的 之的设定 !important 代表强制引用。其实我不大懂 html 这段代码是朋友帮我写的。但是真的解决了我的问题。 图片需要宽度100% 高度自适应,并且 !important; 这句话绝对不能少,否则不管用。
最后 webview 展示的时候 这样 viewWebVeiw.loadData(html, "text/html; charset=UTF-8", null);完美解决。linkcss里边的 属性值 大家可以根据需求 自己改的。