我试图尽可能多地定位架构,并尽可能少地发出警告. 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) { di
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范围吗?
您已经对SDK版本进行了检查,因此可以忽略编译器的弃用警告和有关新API的lint警告.将代码段拉到单独的方法并向其添加以下注释:
@TargetApi(13) @SuppressWarnings("deprecation")
请注意,if的if部分是多余的.简单的其他就够了.