7
誰能告訴我在android中setBackgroundResource(resourceid)
和setBackgroundDrawable(getResource().getDrawable(drawableid))
有什麼區別?setBackgroundResource和setBackgroundDrawable的區別是什麼
誰能告訴我在android中setBackgroundResource(resourceid)
和setBackgroundDrawable(getResource().getDrawable(drawableid))
有什麼區別?setBackgroundResource和setBackgroundDrawable的區別是什麼
你可以親自看看Android source code for the View class,發現它們幾乎沒有區別!
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;
}
而且setBackground()
只是通過對setBackgroundDrawable()
調用...
public void setBackground(Drawable background) {
//noinspection deprecation
setBackgroundDrawable(background);
}
直接從機器人的嘴中取出。 – samosaris
您提供的兩行 - 沒有什麼區別。不過請注意,'setBackgroundDrawable'不必從資源中獲取drawable,它可以是從互聯網上下載的圖像或者動態創建的位圖。 –
但當我禁用一個按鈕,然後啓用灰色的按鈕不刪除(在這裏首先我用setBackgroundResource設置的背景可再次繪製,但它沒有顯示任何區別,然後我用setBackgroundDrawable然後按鈕背景更改爲實際可繪製)。爲什麼兩種方法如果沒有區別就表現出不同的行爲。 –
你能發表一些代碼來證明問題嗎? –