android实现方法到不同的api级别

时间:2013-09-22 22:34:23

标签: java android android-annotations

我在谷歌开发者的Android视频中看到,他们实现了两种方法,并通过注释定义了应该根据api级别调用哪种方法。

不幸的是,我再也找不到视频了(我记不起哪个视频了),所以我搜索了StackOverflow这个问题并找到了这个:Different Java methods for different API Levels

在他使用注释@apilevel的问题中,我找不到该注释。

基本上,我想要做的是:

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private int getDisplayWidth(Display display){
    Point size = new Point();
    display.getSize(size);
    return size.x;
}

@TargetApi(Build.VERSION_CODES.FROYO)
private int getDisplayWidth(Display display){
    return display.getWidth();
}

但是ADT给了我重复的方法错误。

1 个答案:

答案 0 :(得分:6)

使用:

@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR2)
private int getDisplayWidth(Display display){
    if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB_MR2) {
      Point size = new Point();
      display.getSize(size);
      return size.x;
    }

    return display.getWidth();
}