【发布时间】:2014-04-24 18:56:33
【问题描述】:
我正在尝试针对尽可能多的架构,并尽可能少地发出警告。
Point dims = new Point();
if (android.os.Build.VERSION.SDK_INT >= 13) {
mWindowManager.getDefaultDisplay().getSize(dims);
} else if (android.os.Build.VERSION.SDK_INT < 13) {
dims.x = mWindowManager.getDefaultDisplay().getWidth();
dims.y = mWindowManager.getDefaultDisplay().getHeight();
}
但这给了我错误和警告:
Call requires API level 13 (current min is 10): android.view.Display#getSize
The method getWidth() from the type Display is deprecated
They say to change the manifesto(或here)但是为什么上面的代码不适用于编译器?我不能在 api 10 到 18 的范围内摆脱两者吗?
【问题讨论】:
-
使用时是否会导致应用崩溃?通常它会给你一个错误,但程序仍然会运行。这主要是一个警告
-
忽略此类警告将使运行
API低于请求的设备将失败,并且您的应用程序可能会抛出Exception。通常有一些解决方法不需要增加minSdk,不过我不知道如何避免这种情况。 -
或者您可以尝试并做的是
DisplayMetrics display = new DisplayMetrics();然后做getActivity().getWindowManager().getDefaultDisplay().getMetrics(display);这将允许您通过int width = display.widthPixels;或heightPixels获得高度和高度 -
因为第一个没有编译。
标签: android