2013-08-21 29 views
3

我想要獲得屏幕大小,我正在使用具有API級別10的設備。我使用Display來獲取寬度和高度,但在Eclipse中我收到了一條消息,指出這已被棄用。更好更新的方法是對具有更新API的應用程序使用DisplayMetrics,但在API 10中不支持DisplayMetrics。我應該如何處理此問題?API級別10中的屏幕大小和轉發?

舊(過時)

Display display = getWindowManager().getDefaultDisplay(); 
screenWidth = display.getWidth(); 
screenHeight = display.getHeight(); 

DisplayMetrics metrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(metrics); 
metrics.heightPixels; 
metrics.widthPixels; 
+0

爲什麼不先檢查android構建,然後根據您的構建版本調用所需的方法 – Prateek

回答

7

只要勾選API級別是這樣的:

int screenWidth = 0; 
int screenHeight = 0; 
if(android.os.Build.VERSION.SDK_INT < 10) { 
    Display display = getWindowManager().getDefaultDisplay(); 
    screenWidth = display.getWidth(); 
    screenHeight = display.getHeight(); 
} else { 
    DisplayMetrics metrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    screenWidth = metrics.widthPixels; 
    screenHeight = metrics.heightPixels; 
} 

DisplayMetricsAPI level 1加入。所以實際上你只需要else子句。

+0

不錯。它在沒有API級別相關問題的情況下工作。但是把它們轉換成dp呢? – mobilGelistirici

0

在我的應用程序中,我直接在我的活動對象上使用getResources().getDisplayMetrics()。它給我的屏幕大小。它可以正常工作,因爲它可以從API級別1獲得。