我编码到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();
}