我想弄清楚如何在Android 4.0及更高版本的應用程序中的嵌入式WebView中指定CSS尺寸。在三個設備我與(的Nexus 4/7/10)測試,看來如果我使用下面的視窗指令:Android WebView:如果width = device-width和scale = 1.0,CSS像素是否始終等於DIP?
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
...然後在任何內容CSS尺寸加載到網頁流量是與設備無關像素完全相同。也就是說,在我的Nexus 10上,它的像素寬度爲2560,如果在我的webview中指定了寬度爲1280的東西,它將精確地填滿屏幕寬度。
我喜歡這個想法,我可以在CSS中使用與設備無關的像素,但我需要確保能夠計算這些DIP中的精確可用空間。所以我期望如果一個WebView的寬度爲1920像素,它的CSS像素寬度應該爲:
- 在mdpi顯示器上,1920px。
- 在hdpi顯示器上,1280px。
- 在xhdpi顯示器上,960px。
- 在xxhdpi顯示屏上,640px。
這是真的嗎?
我已經閱讀過那個頁面,但我只是重新瀏覽了一下,我想我發現了我的理解。它說,「CSS」像素「實際上考慮了設備像素比率(512px * 2 = 1024px)。」此外,關於像素比率,我的理解是,無論每英寸的實際點數是多少,每個設備都將落入預定義存儲區之一(1.0x,1.5x,2.0x和3.0x)。他們提供的所有示例都使用這些示例,並且它們鏈接到的網站(http://screensiz.es)僅顯示這些值。 –
@BrianRak 「每個設備都會落入其中一個預定義存儲區(1.0x,1.5x,2.0x和3.0x)」:「舊」N7的像素比率爲1.33 ..,這既不是以上:) –
有趣。實際上,1.33也是一個預定義的桶,稱爲「tvdpi」。 (http://developer.android.com/guide/topics/resources/providing-resources.html)谷歌表示,它主要用於電視(因此名稱),但至少似乎仍支持設備將始終使用的理論一個預定義的桶。 我在其他設備上做了一些更多的測試,它們都報告了一個window.devicePixelRatio,它完全對應於其中一個預定義的存儲桶。 –