Android WebView:如果宽度=设备宽度,比例=1.0,CSS像素是否总是相等?
我正试图了解如何在我的Android 4.0及更高版本应用程序的嵌入式网络视图中指定CSS维度。在我正在测试的三台设备(Nexus 4/7/10)上,如果我使用以下视口指令:Android WebView:如果宽度=设备宽度,比例=1.0,CSS像素是否总是相等?,android,css,android-webview,viewport,density-independent-pixel,Android,Css,Android Webview,Viewport,Density Independent Pixel,我正试图了解如何在我的Android 4.0及更高版本应用程序的嵌入式网络视图中指定CSS维度。在我正在测试的三台设备(Nexus 4/7/10)上,如果我使用以下视口指令: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> …然后加载到该webview的内容中的任何CSS维度都与设备无关像素完全相同。也就是说,在
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
…然后加载到该webview的内容中的任何CSS维度都与设备无关像素完全相同。也就是说,在我的Nexus10上,它是2560个物理像素宽,如果在我的webview中我指定某个宽度为1280,它将完全填满屏幕的宽度
我喜欢在CSS中使用与设备无关的像素的想法,但我需要确保我能够在这种倾斜中计算出精确的可用空间。因此,我预计,如果一个WebView有1920个物理像素的宽度,那么它的CSS像素宽度应该是:
- 在mdpi显示器上,1920像素
- 在hdpi显示器上,1280px
- 在xhdpi显示器上,960px
- 在xxhdpi显示器上,640px
这是真的吗?如果要转换物理倾角像素,则需要使用window.devicePixelRatio(或):密度名称(mdpi、hdpi等)只是括号/类别-同一类别中的两个设备可能具有不同的devicePixelRatio值
对于你正在做的事情,不妨看一看 我读过那一页,但我只是重新浏览了一下,我想我找到了对我理解的确认。它说,“一个CSS“像素”实际上考虑了设备像素比率(512px*2=1024px)。“另外,关于像素比率,我的理解是,不管每英寸的实际点数是多少,每个设备都会落入预定义的存储桶中(1.0x、1.5x、2.0x和3.0x)。他们给出的所有示例都使用其中一个,他们链接到的站点()仅显示这些值。@BrianRak“每个设备都将落入预定义的存储桶中(1.0x、1.5x、2.0x和3.0x)”:“旧”N7的像素比为1.33..,这两者都不有趣:)。实际上,尽管1.33也是一个预定义的bucket,称为“tvdpi”。()谷歌表示它主要用于电视(因此得名),但至少这似乎仍然支持这样一种理论,即设备将始终使用预定义的bucket。我在其他设备上做了一些测试,他们都报告了一个window.devicePixelRatio,它与一个预定义的bucket完全对应。