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

标签 android webview font-size

我有一个 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/

相关文章:

android - Android构建 react native 中的gradle错误

android - 下载外部 .db 文件以在 Kotlin Android 应用程序中以只读方式使用?

android - 用opencv全屏显示图像

css - 如何在 Ionic Framework 中自定义字体大小

android - 如何更改语言?

android - 在 webview Android 中禁用点击链接或按钮

java - 如何在 public void onBackPressed() 上实现两个 Action

ios - 在 iOS 上的 Xamarin Forms 中预加载 WebView

javascript - 使用 jQuery 设置随机值的字体大小?

ios - 了解 React Native 中的默认字体大小