我试过:
Resources.getSystem().getDisplayMetrics().widthPixels
和:
Resources.getSystem().getDisplayMetrics().heightPixels
但是当我的应用程序长时间处于待机状态时,唤醒上面的两行返回 0。
编辑:我想将这些值放入静态和最终字段中。
我试过:
Resources.getSystem().getDisplayMetrics().widthPixels
和:
Resources.getSystem().getDisplayMetrics().heightPixels
但是当我的应用程序长时间处于待机状态时,唤醒上面的两行返回 0。
编辑:我想将这些值放入静态和最终字段中。
您可以使用静态初始化程序。您可以通过在类主体中嵌入一个块来做到这一点:
class MyClass {
public static final int width;
public static final int height;
static {
DisplayMetrics dm = Resources.getSystem().getDisplayMetrics();
width = dm.widthPixels;
height = dm.heightPixels;
}
}
这是我用来获取屏幕尺寸的方法,如果需要,您可以将 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();
}