2014-09-30 44 views
4

我知道有很多類似於我的標題的問題,但我找不到我想要的答案。Phonegap android得到實際的屏幕尺寸

在我的應用程序中,我使用window.innerWidthwindow.innerHeight來獲取屏幕大小,但這兩個值返回不同的大小。例如,當我在Note 3上運行我的應用程序時,我得到的是360x615,而它應該是1080x1920。

Java中的下面的代碼給我什麼,我想:

Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int width = size.x; 
    int height = size.y; 

那麼,有沒有在PhoneGap的任何方式來獲得相同的屏幕尺寸值的Java?

更新:當我糖豆上注2測試同樣的代碼,我得到正確的尺寸720x1230

+0

你有一個'viewport' meta標籤在您的index.html設置? – 2014-09-30 20:10:50

+0

是的,即使我刪除它,結果也是一樣的。 – HaiderSahib 2014-09-30 20:25:28

+0

如果你的不同,試試這個''我在所有的應用程序中都使用它,並且沒有 – 2014-09-30 20:28:30

回答

3

我假設你想弄清楚實際設備的像素,而不是更常用的測量CSS pizels?你可以閱讀這here

基本上,如果你想知道實際的設備像素,你可以使用screen.widthscreen.height。如果你想知道CSS像素,你可以使用window.innerWidthwindow.innerHeight

某些Android設備可能會忽略元視口標記,這些都是我對三星Galaxy Tab設備的體驗。

+0

我不確定screen.width和screen.height確實會返回像素值 - 在Galaxy S6上,screen.height會返回640。它需要通過window.devicePixelRatio進行縮放,正如Sadegh在他的回答中提到的那樣。 – 2016-11-10 06:02:16

4

我使用此代碼 希望它能幫助你

var physicalScreenWidth = window.screen.width * window.devicePixelRatio; 
var physicalScreenHeight = window.screen.height * window.devicePixelRatio; 
+0

這對我很好 - 我有一個稍微不同的問題,我試圖確定window.innerHeight在我的應用程序的加載階段,有時會返回零。我認爲屏幕布局的某些部分仍然是異步發生的。 – 2016-11-10 06:01:24