1

在我的应用程序中,我有一个定义为“18sp”的字体尺寸。此字体大小用于 TextView(作为标题)和 WebView(作为正文)。在 mdpi 设备上,两种字体看起来大小相同;但是在 nexus 10 (xhdpi) 上,TextView 看起来正确,而 WebView 大小翻了一番。我正在使用 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)并将字体大小设置为该数字。

有任何想法吗?谢谢

4

2 回答 2

1

您可以使用 JavaScript 代码更改字体大小、背景颜色和字体颜色的 WebView 样式。它正在工作。

loadUrl("javascript:(document.body.style.fontSize ='11pt');");
loadUrl("javascript:(document.body.style.backgroundColor ='red');");
loadUrl("javascript:(document.body.style.color ='yellow');");
于 2013-12-03T08:42:16.060 回答
0

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

WebSettings settings = webview.getSettings();
settings.setDefaultFontSize(10);
于 2013-03-30T03:59:11.917 回答