【问题标题】:Difference between setBackgroundDrawable() and setBackground()setBackgroundDrawable() 和 setBackground() 的区别
【发布时间】:2012-11-23 15:49:10
【问题描述】:

我刚刚将我的 Android 项目的构建目标升级到 API 17,我现在收到关于 setBackgroundDrawable 已被弃用的警告。答案似乎是使用 setBackground,但这在旧版本中不可用。

使用新方法有什么实际优势,还是 Google 只是想更改名称?如果两者的工作方式相同,我认为将我的代码与平台版本检查或反射复杂化没有任何意义。

【问题讨论】:

    标签: java android


    【解决方案1】:

    使用新方法有什么实际优势,还是 Google 只是想更改名称?

    他们好像只想改名字,看source code

    public void setBackground(Drawable background) {
        //noinspection deprecation
        setBackgroundDrawable(background);
    }
    
    @Deprecated
    public void setBackgroundDrawable(Drawable background) { ... }
    

    所有工作仍在setBackgroundDrawable() 中完成。目前,您可以忽略弃用警告,但请理解,将来某些 API setBackgroundDrawable() 将被删除。


    如果您好奇,setBackgroundResource(int resid) 只需从资源 ID 创建一个可绘制对象并调用 setBackground()(它再次调用 setBackgroundDrawable())...

    【讨论】:

    猜你喜欢
    • 2012-08-10
    • 2012-08-04
    • 2014-02-22
    • 1970-01-01
    • 2013-08-07
    • 2011-10-20
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多