如何避免弃用方法并保持向后兼容性?

Jef*_*rod 6 android backwards-compatibility android-support-library

可能重复:
如何处理Android中已弃用的类以保持兼容性

我遇到了已弃用的Display.getWidth()方法,发现它已被替换为android.view.getSize().但是getSize()自API 13以来才可用,并且View似乎不包含在V4 Android支持库中.

因此,如果我想避免不推荐使用的调用,那么如何在不为各种API级别维护不同的项目/构建的情况下执行此操作.

Com*_*are 4

给定一个Display名为 的对象display,这应该有效:

int width=-1;

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2) {
    Point size=new Point();
    size=display.getSize(size);
    width=size.x;
}
else {
    width=display.getWidth();
}
Run Code Online (Sandbox Code Playgroud)

IOW,用于Build.VERSION.SDK_INT在引入新 API 的“之前”和“之后”情况之间进行分支。

这将要求您的构建目标(Eclipse 中的项目 > 属性 > Android)设置为 API 级别 13+,以便您可以调用getSize().