2011-07-10 26 views
77

Estoy tratando de hacer una ImageView que contiene una galería de imágenes. Al tocar la solicitud del usuario para cargar la siguiente imagen. Si la siguiente imagen no se encuentra en el servidor o tarda tiempo en cargar, necesito que la imagen anterior esté vacía.Eliminar la imagen de una vista de imagen Android

setVisibility(View.GONE) o setVisibility(View.INVISIBLE) no funcionan para mí porque cuando invisibles/ido paro el onTouch() detectar (y el usuario se bloquea en la imagen actual).

¿Cómo puedo hacer que ImageView cargue un mapa de bits vacío o borre (elimine) el mapa de bits actual?

+0

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

+1

elegir corect answer pls – user25

Respuesta

2

Probar:

imageView.setImageResource(0); 

Esto fijará la vista de imagen a utilizar ningún recurso.

+1

no funciona para mí = (después de invocar imageView.setImageResource (0) aún muestra el imagen anterior – ChyBy

+0

Hmm, interesante. Bueno, funcionó en el pasado. – Ribose

+17

Gracias, finalmente view.setImageDrawable (null) funcionó como yo quería – ChyBy

4

Ciertamente imageView.setImageResource (0) funciona. Nunca me ha fallado y lo he usado muchas veces.

setImageResource generalmente se pasa la referencia R.drawable, (la referencia para la imagen), que se almacena como un int, pero se muestra en la clase R.java como un valor hexadecimal, 0xf2fs ... Asumiendo esta referencia existe mostrará una imagen, si luego pasa esa misma vista de imagen una referencia que no existe, la imagen anterior ya no se mostrará. Por lo tanto, si pasa 0, o 5 o un int que no coincide con un recurso al que se hace referencia en su clase R.java, eliminará la imagen por completo del src de imageView. Entonces, si está pasando 0 a la referencia anterior de imageView.

+2

'imageView.setImageResource (0)' no funcionó para mí en un Samsung S5 4.4.2 Sin embargo, 'imageView.setImageDrawable (null);' funciona. – rlay3

310

siempre uso

imageView.setImageDrawable(null); 
+0

muchas gracias.Me funcionó – Sakthimuthiah

+28

esto debería marcarse como la respuesta correcta –

+0

¡extraño! No funciona. De hecho, setImageResouce (0) y setBackground (nulo) tampoco funciona. Alguna idea de cuál podría ser el motivo o algún truco para borrar el caché o algo. – RamKr

1

De lo que me he dado cuenta, el "trabajo" o no de cierto método para despejar la imagen depende del método utilizado para poblar ImageView.

Así que si configura img.setImageBitmap(bmp), entonces para borrar debe usar img.setImageBitmap(null). Cuando img.setImageResource(resId) luego para borrar debe utilizar img.setImageResouce(0). Etc.

Cuestiones relacionadas