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} />
谢谢这对我有用。这应该被接受为答案