Android - 有没有办法在像素中获得静态屏幕分辨率?

时间:2013-04-10 11:39:45

标签: android screen-resolution

我尝试过:

Resources.getSystem().getDisplayMetrics().widthPixels

Resources.getSystem().getDisplayMetrics().heightPixels

但是当我的应用程序进入待机状态很长一段时间后,唤醒时上面的两行返回0。

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

2 个答案:

答案 0 :(得分:3)

您可以使用静态初始化程序。你可以通过在类体中嵌入一个块来实现:

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

   static {
       DisplayMetrics dm = Resources.getSystem().getDisplayMetrics();
       width = dm.widthPixels;
       height = dm.heightPixels;
   }
}

答案 1 :(得分: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();
    }