方法getSize(Point)未定义类型Display

时间:2013-08-03 09:04:28

标签: android eclipse width screen-size

我正在为Android编写应用程序。 我想在运行时动态收集屏幕宽度,以根据显示大小绘制对话框。为此我写了以下函数:

public static int getDisplayWidth( Context context )
{
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
    Display display = wm.getDefaultDisplay();
    int width = 0;
    if( android.os.Build.VERSION.SDK_INT >= 13 )
    {
        Point size = new Point();
        display.getSize(size); //Error
        width = size.x;
    }
    else
    {
        width = display.getWidth();
    }
    return width;
}

但我在行“display.getSize(size);”

上收到错误

错误:“方法getSize(Point)未定义类型Display”

我使用Ecslipe作为开发环境。

Project Build Target是“Android 2.3.3”。 在Manifest.xml中我设置: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" />

有人能告诉我为什么会收到这个错误吗? 我做错了什么?

赛普

1 个答案:

答案 0 :(得分:0)

较旧的Android版本没有getSize()方法。错误是调用或链接到缺席函数。

private static Point getDisplaySize(final Display display) {
    final Point point = new Point();
    try {
        display.getSize(point);
    } catch (java.lang.NoSuchMethodError ignore) { // Older device
        point.x = display.getWidth();
        point.y = display.getHeight();
    }
    return point;
}

试用try-catch&amp;看看这是否有帮助。这应该安全地回溯到较旧的API&amp;确保您的代码适用于各种设备。

真的,在谷歌方面有点过分了。

见: