我有一个 WebView
显示不受我控制的内容。 WebView
内容为文件预览,如PowerPoint文档,或PDF文件、word文档等。
当用户更改其设备上的字体大小时(设置 -> 辅助功能 -> 字体大小),WebView 使用调整后的字体大小。这会导致 WebView 内容的布局错误,不再按设计对齐。一个例子是在我的 PowerPoint 演示文稿预览中,文本现在被放大,因此它覆盖了文本右侧的图表,而其他文本超出了幻灯片的边缘。
如何让 WebView 完全忽略任何系统字体设置,只使用 HTML/CSS 中指定的字体大小来显示 WebView 中的内容?
我在堆栈溢出上看到很多关于如何将 WebView
中的字体设置为固定大小的评论,例如:
webView.getSettings().setTextSize(WebSettings.TextSize.NORMAL); // Deprecated
webView.getSettings().setTextZoom(100);
但我不想这样做。我希望字体大小由 WebView
中的 HTML/CSS 确定,我永远不会知道它的值,因为 WebView
的内容可以是任何东西。
最佳答案
Settings中的字体大小设置会影响WebView的textZoom属性。请注意,将此属性设置为最小文本时,它将在 85 左右。而在最大文本设置中,该值将在 130 左右。附加调试器并检查 webView.getSettings() 时可以找到这些值.getTextZoom()
值
仅 webView.getSettings().setTextZoom(100);
设置会强制它回到 100,这又是标准值。这可能是您所期望的。尝试仅使用此语句,根本不设置 textSize。
(如果这不起作用,请提供可重现的示例。加载(powerpoint)文件的预览在大文本设置下显示不正确。)
关于android - WebView 停止使用设备字体设置并使用 HTML 中指定的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49749440/