Android WebView : Do CSS pixels always equal DIPs if width=device-width and scale=1. 0?

标签 android css android-webview viewport density-independent-pixel

我正在努力思考如何在我的 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/

相关文章:

Android:从本地存储加载图像到webview

android - 无法完全摆脱 Android 4.1.2 上 Phonegap 3.0 应用程序中的点击突出显示颜色

android - android :onClick XML attribute differ from setOnClickListener?到底是怎么回事

c++ - Linux C++ : Linker is outputting strange errors

java - 使用 CA 证书是否足以与 SSLServerSocket 进行安全通信?

javascript - 如何在滚动时根据屏幕上的内容(展开/折叠)制作自动调整大小的 div?

java - 在 RecyclerView 中加载 WebView 时显示进度

javascript - 有没有办法在 JavaScript 中区分 Android Arm 操作系统和 Android x86 操作系统?

javascript - 如果任何 Div 是空的做一些事情

css - 复选框附近的虚线边框 IE9