1

我有以下代码来查找屏幕的大小:

WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
    Point size = new Point();
    int measuredWidth = 0;
    int measuredHeight = 0;

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        wm.getDefaultDisplay().getSize(size);

        measuredWidth = size.x;
        measuredHeight = size.y;
    } else {
        Display display = wm.getDefaultDisplay();

        measuredWidth = display.getWidth();
        measuredHeight = display.getHeight();
    }

在galaxy gio(2.3.6)上这是可行的,但是在galaxy tab 10.1(3.0)上会崩溃。

wm.getDefaultDisplay().getSize(size);

在这条线上我得到

NoSuchMethodError:android.view.Display.getSize。

我怎样才能解决这个问题?

4

2 回答 2

2

我已经找到了,我认为 getSize() 方法从 HoneyComb (api 11) 开始可用,但实际上它只在 Honeycomb_MR2 (api 13) 之后可用。

于 2012-09-28T11:27:24.350 回答
0

getSize() 从 API 13文档开始

您可能在具有旧版本的设备上运行它。

尝试 getHeight() 和 getWidth()。

于 2012-09-28T11:29:45.763 回答