3

我想获取屏幕大小,并且我使用的是 API 级别 10 的设备。我正在使用Display来获取宽度和高度,但我在 Eclipse 中收到一条消息,表明不推荐使用。更好和更新的方法是DisplayMetrics用于具有较新 API 但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;
4

2 回答 2

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;
}

DisplayMetrics被添加到API level 1. 所以实际上你只需要 else 子句。

于 2013-08-21T07:08:49.323 回答
0

在我的应用程序中,我getResources().getDisplayMetrics()直接在我的活动对象上使用。它正好给了我屏幕尺寸。它工作正常,因为它可以从 API 级别 1 获得。

于 2013-08-21T07:16:25.543 回答