2013-08-07 12 views
7

arasındaki fark nedir? Herkes bana androidde setBackgroundResource(resourceid) ve setBackgroundDrawable(getResource().getDrawable(drawableid)) arasındaki fark nedir?setBackgroundResource ve setBackgroundDrawable

+0

iki satır çağırır. Ancak, "setBackgroundDrawable" öğesinin kaynaklardan çekilebilir olması gerekmediğini unutmayın. Bu, internetten indirilen bir görüntü veya anında oluşturulan bir bitmap olabilir. –

+0

ancak bir düğmeyi devre dışı bırakıp etkinleştirdikten sonra grileştirilen düğmenin kaldırılmaması için düğmeyi kaldırdım (burada ilk olarak arka planın yeniden çizilebilmesini ayarlamak için setBackgroundResource öğesini kullandım ancak herhangi bir farklılık göstermiyordu ve sonra setBackgroundDrawable kullanmıştım ve ardından düğme arka planı değiştirildi gerçek çekilebilir). Neden her ikisi de farklı bir davranış göstermiyorsa farklı davranışlar gösterir. –

+0

Sorunu gösteren bir kod gönderebilir misiniz? –

cevap

7

Android source code for the View class'a bir göz atabilir ve çok az fark olduğunu öğrenebilirsiniz! hiç fark -

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; 
} 

Ve setBackground() sadece ... setBackgroundDrawable() kadar sağladığınız

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

Droidin ağzından düz. – samosaris

İlgili konular