2010-04-27 90 views
6

如何更改ImageView的背景從Java?我有一個ImageView,並且在某個點我需要更改它顯示的圖像(在樣式中設置)。我試圖做這樣的:更改ImageView的背景(舊圖像停留在那裏!)

placeHolder.setImageDrawable(myDrawb); 

但它看起來像舊的圖像仍然存在,並且部分覆蓋,但新的(這在我的情況下,具有不同的形狀)。

希望你們能幫忙!

歡呼

回答

13

你不需要觸摸XML來使用src而不是背景!

ImageView可以顯示兩個繪圖!一個在後臺,另一個在前臺。 看來你總是在改變背景圖片。

而不是setBackgroundResource(resId)使用setImageResource(resId)改變前景圖像!

+0

有時最好的答案在底部:) – Jacksonkr 2012-10-05 20:26:43

3

清除與背景圖像:

placeHolder.setBackgroundResource(0); 
+0

是的!就是這樣!所以基本上android不會自動用新的替代舊的...它堆疊起來,除非你使用setBackgroundResource。非常有用謝謝 – nourdine 2010-04-30 09:55:35

+2

背景與內容無關。您正在使用setImageDrawable設置內容,但保留背景。 – drawnonward 2010-04-30 18:27:46

2

另外,您應該設置ImageViewSrc在XML而不是設置Background的。無論如何,我認爲這是「正確」的方式。

+1

我無法觸摸XML!我從網上加載圖片,當圖片下載完成時,我需要將它們放入佔位符中。 – nourdine 2010-04-29 09:06:36

+0

此答案應該被下載投票,因爲這裏沒有提問的鏈接 – Sameer 2012-04-09 07:28:23

+0

@Sameer不,這是一個有用的答案。儘管所有者沒有使用這個答案,但其他讀者可以使用這個答案。事實上,這個答案幫了我很多 – 2013-03-27 05:32:02