更改WebView的字体大小

 上次总结了一下WebView更改字体大小的帖子,这次在加点料,索性把webView的字体颜色和背景颜色都设置一下。   现在的App大多数支持日夜间模式的切换,对于新闻阅读类的App,更改WebView的日夜间模式,显得尤为重要。更改字体颜色,主要的思想是在WebView加载的Data的外面,加载了一个模板,然后根据用户日夜间模式切换的点击事件,更改WebView的字体颜色。其实这里例子懂了之后,以后对于WebView的界面处理,就简单很多。都是加载模板,更改里面的内容。有的服务器返回的data格式,在手机上显得很格格不入,那样的话就需要,在处理后的data上,再加一个正则表达式的过滤了,详细需要过滤的,还得根据不同情况,查询不同的过滤规则。言归正传,先说说这个更改字体颜色的核心代码。
private String initContent(String content, boolean night, boolean flag) {
try {
InputStream inputStream = getResources().getAssets().open(
"discover.html");
BufferedReader reader = new BufferedReader(new InputStreamReader(
inputStream), 16 * 1024);
StringBuilder sBuilder = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sBuilder.append(line + "\n");
}
String modelHtml = sBuilder.toString();
inputStream.close();
reader.close();

String contentNew = modelHtml.replace(
"<--@#$%discoverContent@#$%-->", content);
if (night) {
contentNew = contentNew.replace("<--@#$%colorfontsize2@#$%-->",
"color:#8f8f8f ;");
} else {
contentNew = contentNew.replace("<--@#$%colorfontsize2@#$%-->",
"color:#333333 ;");
}
if (flag) {
contentNew = contentNew.replace(
"<--@#$%colorbackground@#$%-->", "background:#B4CDE6");
} else {
contentNew = contentNew.replace(
"<--@#$%colorbackground@#$%-->", "background:#F9BADA");
}
return contentNew;

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}

通过这段代码,就可以设置更改字体颜色,和背景色。另再附上一个简单的模板,仅供参考。


 






 

<--@#$%discoverContent@#$%-->


你可能感兴趣的:(Android开发)