2013-10-04 40 views

回答

2

Nexus 4的像素密度爲xhdpi,所以1280像素x 768像素的物理顯示屏在android佈局「設備獨立像素」方面的比例是640dp x 384dp。如果將佈局設置爲1280dp x 768dp,則這是不正確的。

有關屏幕密度,設備無關像素(dp)的更多信息,請參閱http://developer.android.com/guide/topics/resources/more-resources.html#Dimension

如果你真的在測量這些大小隻是感興趣,你的活動已加載和佈局完成後,你可以在你感興趣的視圖(S)調用的getWidth()和getHeight(),以確定它們的大小布局後。

你也想知道:

float pixelDensity = myContext.getResources().getDisplayMetrics().density; 

您可以決定顯示大小:

WindowManager w = myActivity.getWindowManager(); 
Display display = w.getDefaultDisplay(); 
int height = display.getHeight(); 
int width = display.getWidth(); 

則:

int heightInDIPs = height/pixelDensity; 
int widthInDIPs = width/pixelDensity; 

鏈接支持多種屏幕尺寸提供by @SpacePope是最好的...你可以得到一些屬l針對每種顯示類別(小,中,大,xlarge)的設備尺寸指南,並確保爲mdpi,hdpi,xhdpi和現在的xxhdpi密度創建圖形,並在必要時讓平臺縮放。

+0

不,我把它設置爲1280像素,它仍然在屏幕之外? – NateshR

+0

我想知道nexus 4中高度的match_parent的值嗎? – NateshR

+0

編輯回答根據您的問題/評論 – CSmith

0

請勿在佈局XML中使用「px」; 「dp」更適合跨設備維持規模。請閱讀supporting multiple screens

+3

另外,不要忘記導航欄/狀態欄佔用屏幕房地產;擁有1280x768的分辨率並不能保證您的應用會擁有很多像素。 – Josh

+0

我想知道我應該設置爲覆蓋整個屏幕的價值。 – NateshR

+1

正確的做法是使用'fill_parent';您不希望以像素爲單位對這些值進行硬編碼,以免您的應用只能在一個或兩個特定設備上正確顯示。請參閱我發佈的鏈接中的「最佳做法」部分。 – Josh