在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); }