即使我指定了api级别,Android也会弃用警告

我编码到api级别11.所以为了得到显示器的宽度,我有以下功能

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

我做了所有这些,所以我不会得到弃用警告.但我仍然得到getWidth的警告.为什么警告不会消失?

我也得到一个错误,因为getSize说呼叫要求api等级13但是检测到11.

解决方法:

IDE不够智能,无法实现您在此处尝试的操作,因此您仍然会收到警告.

如果你想要摆脱它们,你可以定义两种方法:一种是在Honeycomb路线中执行代码,一种是注释@TargetApi(13),另一种是使用注释@在另一条路径中执行代码. SuppressWarnings( “弃用”).就个人而言,我不担心.

例:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
    width = getWidthHoneycombMR2();
}
else {
    width = getWidthLegacy(display);
}

...

@TargetApi(13)
public int getWidthHoneycombMR2() {
    Point size = new Point();
    display.getSize(size);
    return size.x;
}

@SuppressWarnings("deprecation")
public int getWidthLegacy(display display) {
    return display.getWidth();
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...