所以我有一个小问题,我正在编写一个需要向服务器发送屏幕宽度的函数。我完成了所有工作,并使用:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
获得宽度。但是.getWidht()函数已被弃用,它表示你需要使用:
Point size = new Point();
display.getSize(size);
但是这个功能仅适用于api等级13或更高,我的最低sdk是8.所以我该怎么办?如果我留在getWidth是否安全?为什么要添加新功能而不使它们向后兼容?
答案 0 :(得分:110)
可能这种方法会有所帮助:
DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;
答案 1 :(得分:11)
您可以在运行时检查API级别,并选择要使用的级别,例如:
final int version = android.os.Build.VERSION.SDK_INT;
final int width;
if (version >= 13)
{
Point size = new Point();
display.getSize(size);
width = size.x;
}
else
{
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
}
答案 2 :(得分:4)
如果您想要正确,请使用此方法>
int sdk = android.os.Build.VERSION.SDK_INT;
if (sdk < android.os.Build.VERSION.RELEASE) {
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
} else {
Point size = new Point();
display.getSize(size);
}