因此,我的SDK从15变为21,当我调用setBackgroundDrawable()时,Android Studio告诉我它已被弃用。

我想使用以下方法解决它:

int sdk = android.os.Build.VERSION.SDK_INT;

if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
    layout.setBackgroundDrawable(getResources().getDrawable(R.drawable.img_wstat_tstorm));
} else {
    layout.setBackground(getResources().getDrawable(R.drawable.img_wstat_tstorm));
}

但是然后,我在“setBackground()”处收到一个错误。

那么,您将如何处理呢?

最佳答案

这是一个有趣的话题。显然,您这样做的方式是正确的。实际上,这只是一个命名决策更改。正如this answer所指出的,setBackground()只是调用setBackgroundDrawable():

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

@Deprecated
public void setBackgroundDrawable(Drawable background) { ... }

您可以查看this thread以获得有关所有这些的更多信息。

关于android - 不推荐使用setBackgroundDrawable(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27141279/

10-11 22:37