2

我试过:

Resources.getSystem().getDisplayMetrics().widthPixels

和:

Resources.getSystem().getDisplayMetrics().heightPixels

但是当我的应用程序长时间处于待机状态时,唤醒上面的两行返回 0。

编辑:我想将这些值放入静态和最终字段中。

4

2 回答 2

4

您可以使用静态初始化程序。您可以通过在类主体中嵌入一个块来做到这一点:

class MyClass {
   public static final int width;
   public static final int height;

   static {
       DisplayMetrics dm = Resources.getSystem().getDisplayMetrics();
       width = dm.widthPixels;
       height = dm.heightPixels;
   }
}
于 2013-11-01T14:07:46.210 回答
0

这是我用来获取屏幕尺寸的方法,如果需要,您可以将 display、screenWidth 和 screenHeight 变量作为类变量(在任何方法之外,即 onCreate)。然后您可以将 if 语句放入 onCreate 或其他方法来初始化变量。

    Display display = getWindowManager().getDefaultDisplay();
    int screenWidth, screenHeight;

    if (android.os.Build.VERSION.SDK_INT >= 13)
    {
        Point size = new Point();
        display.getSize(size);
        screenWidth = size.x;
        screenHeight = size.y;
    }
    else
    {
        screenWidth = display.getWidth();
        screenHeight = display.getHeight();
    }
于 2013-04-12T18:39:01.510 回答