我想使用函数activity.getWindowManager()。getDefaultDisplay()。getwidth()但是有一个警告说这个函数已被弃用
我该怎么办?我还应该使用这个功能吗?还是有一些其他功能也一样?
答案 0 :(得分:27)
弃用意味着不应该使用它,但出于兼容性原因,它仍然存在。
您应该使用:
Point size = new Point();
activity.getWindowManager().getDefaultDisplay().getSize(size);
int width = size.x;
int height = size.y;
答案 1 :(得分:3)
注释@Deprecated的程序元素是程序员所在的程序元素 不鼓励使用,通常是因为它是危险的,或者是因为 存在更好的选择。编译器在被弃用的程序时发出警告 在不推荐使用的代码中使用或覆盖元素。
答案 2 :(得分:2)
来自Display
API参考:
int getWidth() This method was deprecated in API level 13. Use getSize(Point) instead.
这意味着您将实例化Point
,将其传递给getSize()
并从中检索x
。
答案 3 :(得分:1)
不推荐使用的函数是引入了新的更好的替代函数的函数,将来它们可能在新的API中不受支持。但随意使用它们,因为它们需要花费大量时间才能过期。
答案 4 :(得分:1)
将光标放在方法名称上,然后按F2
以获取有关最新API的信息。 (假设您正在使用Eclipse)
答案 5 :(得分:0)
正确的做法是检查SDK版本。根据您的不同,您可以使用已弃用的功能或使用Point执行此操作。请参阅以下内容:Is it safe to use .getWidth on Display even though its deprecated。
答案 6 :(得分:0)
尝试:
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;