在Display上使用.getWidth是安全的,即使它已被弃用
所以我有一个小问题,我正在写一个function,需要发送屏幕宽度到服务器。 我知道这一切工作,我使用:
Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth();
得到宽度。 但.getWidht()函数已被弃用,它说你需要使用:
Point size = new Point(); display.getSize(size);
但是这个函数只适用于api level 13或者更高,我的最小sdk是8.那么我能做什么呢? 如果我留在getWidth是否安全? 为什么添加新的function,而不是使它们向后兼容?
可能是这个方法会有帮助:
DisplayMetrics displaymetrics = new DisplayMetrics(); mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int screenWidth = displaymetrics.widthPixels; int screenHeight = displaymetrics.heightPixels;
您可以在运行时检查API级别,并select要使用的级别,例如:
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(); }
如果你想要正确的话,使用这种方法>
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); }