在项目中碰到的一个小需求,webview要求设置透明且能够和pc网页端显示一致。
一、webview透明问题,仅需设置一下一行代码即可
webView.setBackgroundColor(Color.TRANSPARENT);
二、要求显示和pc一致
这个问题主要是由于pc加载网页时会同时加载css样式,所以我们仅仅只需要加显示富文本时也同时加载css样式即可
1、在工程assets目录中创建一个css样式文件content.css,例如:
```
body,p,div,h1,h2,h3,h4,h5,h6,span{ color:#d2d3d4 !important; font-size:15px; background:none}
body p span{
color:#d2d3d4 !important;font-size:14px !important;
}
body p.MsoNormal span{
color:#d2d3d4 !important;font-size:14px !important;
}
2、在webview加载的地方使用如下方式加载css和富文本
String linkCss ="<link rel=\"stylesheet\" href=\"file:///android_asset/content.css\" type=\"text/css\">";
StringBuffer bodyBuffer =new StringBuffer("<html><header>");
bodyBuffer.append(linkCss).append("</header>").append(liveRoomInfo.getRoomDesc()).append("</body></html>");
webView.setBackgroundColor(Color.TRANSPARENT);
webView.loadDataWithBaseURL(linkCss, bodyBuffer.toString(), "text/html", "UTF-8", null);
```
下图所示。没有加css,“我是webview!!” 则会黑色显示。
ok!处理完成。正常显示啦!