我想使用函数 activity.getWindowManager().getDefaultDisplay().getwidth() 但是有一个警告说这个函数已被弃用
我该怎么办 ?我应该使用这个功能吗?还是有其他一些功能可以做同样的事情?
我想使用函数 activity.getWindowManager().getDefaultDisplay().getwidth() 但是有一个警告说这个函数已被弃用
我该怎么办 ?我应该使用这个功能吗?还是有其他一些功能可以做同样的事情?
弃用意味着它不应该被使用,但出于兼容性原因它仍然存在。
您应该改用:
Point size = new Point();
activity.getWindowManager().getDefaultDisplay().getSize(size);
int width = size.x;
int height = size.y;
从Display
API 参考:
int getWidth() This method was deprecated in API level 13. Use getSize(Point) instead.
这意味着您将实例化 a Point
,将其传递给getSize()
并从中检索x
。
不推荐使用的功能是那些引入了新的更好替代品的功能,并且将来可能不会在新的 API 中得到支持。但是请随意使用它们,因为它们需要很长时间才能过期。
将光标放在方法的名称上并按下F2
以获取有关最新 API 的信息。(假设您使用的是 Eclipse)
尝试:
WindowManager windowmanager = (WindowManager) this.getContext()
.getSystemService(Context.WINDOW_SERVICE);
和:
Display display = windowmanager.getDefaultDisplay();
Point size = new Point();
try {
display.getRealSize(size);
} catch (NoSuchMethodError err) {
display.getSize(size);
}
int width = size.x;
int height = size.y;
或与:
DisplayMetrics displayMetrics = new DisplayMetrics();
windowmanager.getDefaultDisplay().getMetrics(displayMetrics);
int deviceWidth = displayMetrics.widthPixels;
int deviceHeight = displayMetrics.heightPixels;
正确的做法是检查 SDK 版本。根据这一点,您可以使用已弃用的功能或使用 Point. 请参阅以下内容:即使已弃用,在 Display 上使用 .getWidth 是否安全。