我正在尝试尽可能多的架构,并尽可能少地发出警告。
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)但为什么上面的代码不能用于编译器?难道我不能摆脱10到18的api范围吗?
答案 0 :(得分:7)
您已经对SDK版本进行了检查,因此可以忽略编译器的弃用警告和有关新API的lint警告。
将代码段拉到单独的方法并向其添加以下注释:
@TargetApi(13)
@SuppressWarnings("deprecation")
请注意,if
的{{1}}部分是多余的。简单else if
就足够了。
答案 1 :(得分:0)
要检索显示尺寸,建议使用
context.getResources().getDisplayMetrics()
代替。然后使用widthPixels和heightPixels属性。
使用当前上下文为您提供多个显示器当前显示的尺寸,这也更安全。