我正在努力思考如何在我的 Android 4.0 及更高版本应用中的嵌入式 WebView 中指定 CSS 尺寸。在我测试的三台设备 (Nexus 4/7/10) 上,如果我使用以下视口(viewport)指令,似乎:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
...然后加载到该 webview 的内容中的任何 CSS 尺寸都与设备无关像素完全相同。也就是说,在我的 Nexus 10 上,它有 2560 个物理像素宽,如果我在我的 webview 中指定宽度为 1280 的东西,它将正好填满屏幕的宽度。
我喜欢我可以在我的 CSS 中使用与设备无关的像素的想法,但我需要确保我能够计算此类 DIP 中的精确可用空间。所以我希望如果一个 WebView 有 1920 个物理像素的宽度,它的 CSS 像素宽度应该是:
- 在 mdpi 显示器上,1920 像素。
- 在 hdpi 显示器上,1280 像素。
- 在 xhdpi 显示器上,960 像素。
- 在 xxhdpi 显示器上,640 像素。
这是真的吗?
最佳答案
如果您想转换物理 <-> DIP 像素,那么您需要使用 window.devicePixelRatio(或 DisplayMetrics):密度名称(mdpi、hdpi 等)只是括号/类别 - 中的两个设备同一类别可能具有不同的 devicePixelRatio 值。
对于您正在做的事情,看看 Pixel-Perfect UI in the WebView 可能是个好主意。 .
关于Android WebView : Do CSS pixels always equal DIPs if width=device-width and scale=1. 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20230852/