Android WebView缩放字体大小

时间:2013-03-30 03:27:36

标签: android android-webview font-size

在我的应用程序中,我有一个定义为“18sp”的字体的维度。此字体大小用于TextView(作为标题)和WebView(作为正文)。在mdpi设备上,两种字体看起来都是相同的大小;但是在nexus 10(xhdpi)上,当WebView大小翻倍时,TextView看起来是正确的。我正在使用

在webview上设置文本大小
int fontSize = res.getDimensionPixelSize(R.dimen.textSize);

然后在正文中使用css设置字体:

<body style='font-size: " + fontSize + "px'>

显然为什么文本大小加倍 - xhdpi设备上的18sp出现了36px - 但我很困惑为什么这是由TextView而不是WebView自动处理的。我可以想到几种方法来解决这个问题,但我不知道哪种方法(如果有的话)是正确的方法:

  • mdpi与xhdpi设备的单独字体大小
  • 将WebView的默认缩放设置为100 / displayMetrics.scaledDensity
  • 获取字体大小为绝对整数(例如18sp等于18)并将字体大小设置为该数字。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:1)

您可以使用JavaScript代码更改fontSize,backgroundColor和字体颜色的WebView样式。它正在工作。

loadUrl("javascript:(document.body.style.fontSize ='11pt');");
loadUrl("javascript:(document.body.style.backgroundColor ='red');");
loadUrl("javascript:(document.body.style.color ='yellow');");

答案 1 :(得分:0)

在webview中设置这样的字体大小

WebSettings settings = webview.getSettings();
settings.setDefaultFontSize(10);