在我的应用程序中,我有一个定义为“18sp”的字体尺寸。此字体大小用于 TextView(作为标题)和 WebView(作为正文)。在 mdpi 设备上,两种字体看起来大小相同;但是在 nexus 10 (xhdpi) 上,TextView 看起来正确,而 WebView 大小翻了一番。我正在使用 webview 设置文本大小
int fontSize = res.getDimensionPixelSize(R.dimen.textSize);
然后在正文中使用 css 设置字体:
<body style='font-size: " + fontSize + "px'>
很明显为什么文本大小加倍 - xhdpi 设备上的 18sp 变为 36px - 但我很困惑为什么这是由 TextView 而不是由 WebView 自动处理的。我可以想到几种方法来处理这个问题,但我不知道哪种(如果有的话)是正确的方法:
- mdpi 与 xhdpi 设备的单独字体大小
- 将 WebView 的默认缩放设置为 100 / displayMetrics.scaledDensity
- 将字体大小设为绝对整数(例如 18sp 等于 18)并将字体大小设置为该数字。
有任何想法吗?谢谢