我刚将我的Android项目的构建目标升级到API 17,现在我收到了有关setBackgroundDrawable过时的警告。答案似乎是使用setBackground,但这在旧版本中不可用。
使用新方法是否有任何实际优势,还是Google只是想改变名称?如果两者的表现相同,我不认为通过平台版本检查或反射来使我的代码变得复杂有任何意义。
使用新方法是否有实际优势,还是Google只是想改变名称?
他们似乎只想改变名称,请看源代码:
public void setBackground(Drawable background) {
//noinspection deprecation
setBackgroundDrawable(background);
}
@Deprecated
public void setBackgroundDrawable(Drawable background) { ... }
所有的工作仍然在 setBackgroundDrawable()
中完成。目前,您可以忽略弃用警告,但要理解在未来的某个API版本中,setBackgroundDrawable()
将被移除。
setBackgroundResource(int resid)
仅仅是从资源ID中创建了一个可绘制对象,并调用了 setBackground()
方法(该方法又会调用 setBackgroundDrawable()
方法)...