安卓WebView中字体大小的单位是像素

6

我希望能将WebView中使用的字体大小设置为特定像素大小。我的做法大致如下

<p style="font-size: 18px">Text</p>

然而,在不同的设备上,字体大小是不同的。有什么办法可以解决这个问题吗?

谢谢!


因为不同设备的像素大小不同,如果你实际上想将其设置为像素,你应该预计在不同设备上会有这种变化。你是否有想要使用像素的特定原因? - FoamyGuy
1
抱歉,也许我应该详细说明一下。我使用像素,但我会按比例缩放像素以匹配设备的dpi。我的客户有一个固定像素设计,我将其缩放到最大可能的大小(带有顶部、底部或左右边框)。除了Webview之外,一切都运作得很完美。 - Joris Weimar
3个回答

6
我找到的解决方案是在HTML中添加以下meta标签。
 <meta name=\"viewport\" content=\"target-densitydpi=device-dpi\" />

1
已弃用 http://www.petelepage.com/blog/2013/02/viewport-target-densitydpi-support-is-being-deprecated/ - Dori
谢谢您让我们知道。我应该寻找另一种方法。 - Joris Weimar
<meta name="viewport" content="width=device-width"> 在下面链接中的评论中对我很有效。 - Juanin

2
您可以使用Webview获取一个设置对象,并使用setDefaultFontSize(int size)方法来设置默认字体大小。

例如:
myWebView.getSettings().setDefaultFontSize(20);

或者,您可以在您的 Web 视图上使用 setInitialScale(int percentage) 方法来设置所需的百分比缩放,您可以尝试不同的百分比并查看哪个最合适。
例如:
myWebView.setInitialScale(85);

您还可以使用webview来获取其设置对象,然后使用setBuiltInZoomControls(boolean value)方法允许/禁止用户使用默认缩放控件,以便他们根据自己的喜好进行缩放。
例如:
myWebView.getSettings().setBuiltInZoomControls(true);

0

所有那些对我都不起作用,我需要做这个:

WebSettings settings = wv.getSettings();
if (Utils.hasIceCreamSandwich())
    settings.setTextZoom( (int)(settings.getTextZoom() * 1.2));
else {
    settings.setTextSize(WebSettings.TextSize.LARGER);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接