2011-07-10 54 views
77

我試圖製作一個包含圖像庫的ImageView。通過觸摸用戶請求來加載下一個圖像。如果在服務器中找不到下一張圖像或需要時間加載,我需要將舊圖像清空。從imageview中刪除圖像Android

setVisibility(View.GONE)setVisibility(View.INVISIBLE)不適用於我,因爲當看不見/不見時我停止onTouch()檢測(並且用戶被鎖定到當前圖像)。

我怎樣才能讓ImageView加載一個空的位圖或清除(刪除)當前位圖?

+0

ImageView.setImageResource(android.R.color.transparent);從http://stackoverflow.com/questions/2859212/how-to-clear-an-imageview-in-android –

+1

選擇corect答案請 – user25

回答

2

嘗試:

imageView.setImageResource(0); 

這將設置爲不使用資源的圖像視圖。

+1

不是爲我工作=(後調用imageView.setImageResource(0),它還是顯示了老照片 – ChyBy

+0

嗯,有趣的。那麼它在過去爲我工作。 – Ribose

+17

謝謝,終於view.setImageDrawable(空)的工作,因爲我想 – ChyBy

4

當然imageView.setImageResource(0)的作品。它從來沒有失敗過,我也用過很多次。

setImageResource通常傳遞參考R.drawable(圖片的參考),它存儲爲int,但在R.java類中顯示爲十六進制值0xf2fs ...因此,假定此引用存在它會顯示圖片,如果您稍後通過相同的圖像查看不存在的參考舊圖片將不再顯示。所以,如果你傳遞0或者5,或者是一個int,它與你的R.java類中引用的資源不匹配,它將從imageView的src中完全刪除圖片。所以如果你將0傳遞給imageView的舊引用。

+2

'imageView.setImageResource(0)'沒有爲我上了三星S5工作4.4.2運行'但是imageView.setImageDrawable(NULL);'作品 – rlay3

310

我總是用

imageView.setImageDrawable(null); 
+0

感謝lot.Its工作對我來說這 – Sakthimuthiah

+28

應標記爲正確答案 –

+0

怪其不工作其實setImageResouce(0)和的setBackground!。 (null)也不起作用任何想法可能是什麼原因或任何技巧來清除緩存或什麼 – RamKr

1

從我注意到,「工作」或不特定的方法結算時圖像取決於用來填充的ImageView的方法。

所以,如果你設置img.setImageBitmap(bmp)然後清除你應該使用img.setImageBitmap(null)。當你img.setImageResource(resId)然後清除你應該使用img.setImageResouce(0)。 等等