setBackgroundResource和setBackgroundDrawable之间有什么区别

sra*_*ara 9 android background view android-drawable

谁能告诉我setBackgroundResource(resourceid)setBackgroundDrawable(getResource().getDrawable(drawableid))android 之间有什么区别?

Ale*_*MDC 8

您可以自己查看View类Android源代码,并发现差别很小!

public void setBackgroundResource(int resid) {
    if (resid != 0 && resid == mBackgroundResource) {
        return;
    }

    Drawable d= null;
    if (resid != 0) {
        d = mResources.getDrawable(resid);
    }
    setBackground(d);

    mBackgroundResource = resid;
}
Run Code Online (Sandbox Code Playgroud)

setBackground()刚刚经历来调用setBackgroundDrawable()...

public void setBackground(Drawable background) {
    //noinspection deprecation
    setBackgroundDrawable(background);
}
Run Code Online (Sandbox Code Playgroud)