Android WebView停止使用设备字体设置并使用HTML中指定的样式

Android WebView停止使用设备字体设置并使用HTML中指定的样式,android,webview,font-size,Android,Webview,Font Size,我有一个WebView显示不受我控制的内容。WebView内容是文件的预览,如PowerPoint文档或PDF文件、word文档等 当用户更改其设备上的字体大小(设置->辅助功能->字体大小)时,WebView将使用此调整后的字体大小。这导致WebView内容的布局错误,不再按照设计进行对齐。一个例子是在我的PowerPoint演示文稿预览中,文本现在被放大了,因此它覆盖了文本右侧的一个图表,而其他文本则从幻灯片边缘溢出 如何让WebView完全忽略任何系统字体设置,而只使用HTML/CSS中为

我有一个
WebView
显示不受我控制的内容。
WebView
内容是文件的预览,如PowerPoint文档或PDF文件、word文档等

当用户更改其设备上的字体大小(设置->辅助功能->字体大小)时,WebView将使用此调整后的字体大小。这导致WebView内容的布局错误,不再按照设计进行对齐。一个例子是在我的PowerPoint演示文稿预览中,文本现在被放大了,因此它覆盖了文本右侧的一个图表,而其他文本则从幻灯片边缘溢出

如何让WebView完全忽略任何系统字体设置,而只使用HTML/CSS中为WebView中的内容指定的字体大小?

我在stack overflow上看到了很多关于如何将
WebView
中的字体设置为固定大小的评论,例如:

webView.getSettings().setTextSize(WebSettings.TextSize.NORMAL); // Deprecated
webView.getSettings().setTextZoom(100);

但我不想这样做。我希望字体大小由
WebView
中的HTML/CSS决定,因为
WebView
的内容可以是任何内容,所以我永远不会知道它的值。

设置中的字体大小设置会影响WebView的textZoom属性。请注意,当将此属性设置为最小文本时,它大约为85。在最大文本设置上,该值将在130左右。附加调试器并检查
webView.getSettings().getTextZoom()
值时,可以找到这些值

仅使用浏览器
webView.getSettings().setTextZoom(100)设置会将其强制返回到100,这也是标准值。这可能就是你所期望的。请尝试仅使用此语句而不设置textSize


(如果这不起作用,请提供可复制的示例。加载(powerpoint)文件的预览时,大文本设置显示不正确。)

您可以在
textZoom
属性中进行设置

在Android上,
textZoom
如果未定义,则遵循系统字体缩放,因此,
textZoom={100}
禁用系统字体缩放以缩放web视图文本。从:

如果用户在Android系统中设置了自定义字体大小,则WebView中的站点界面会出现不需要的缩放

设置标准
textZoom
(100)参数大小时,这种不良效果消失

<WebView textZoom={100} />

谢谢这对我有用。这应该被接受为答案