Cómo borrar un ImageView en Android?

Estoy reutilizando ImageView para mis pantallas, pero en algún momento no tengo valores para ponerlo.

Entonces, ¿cómo borrar un ImageView en Android?

He intentado:

 mPhotoView.invalidate(); mPhotoView.setImageBitmap(null); 

Ninguno de ellos ha borrado la vista, todavía muestra la imagen anterior.

Solía ​​hacerlo con la solución dennis.sheppard :

 viewToUse.setImageResource(0); 

funciona, pero no está documentado, por lo que no es realmente claro si afecta a algo más en la vista (puede comprobar el código de ImageView si lo desea, no lo hice).

Creo que la mejor solución es:

 viewToUse.setImageResource(android.R.color.transparent); 

Me gusta más esta solución porque no hay nada complicado para revertir el estado y también está claro lo que está haciendo.

Tuve un problema similar, donde básicamente necesitaba eliminar ImageViews de la pantalla. Algunas de las respuestas aquí me llevaron en la dirección correcta, pero al final llamé a setImageDrawable ():

 imgView.setImageDrawable(null); 

Sé que esto es viejo, pero pude lograr esto con

 viewToUse.setImageResource(0); 

Parece que no debería funcionar, pero lo intenté por capricho, y funcionó perfectamente.

Parece que lo que desea es una imagen predeterminada para configurar su ImageView cuando no muestra una imagen diferente. Así es como lo hace la aplicación Contactos:

 if (photoId == 0) { viewToUse.setImageResource(R.drawable.ic_contact_list_picture); } else { // ... here is where they set an actual image ... } 

Intenté esto para borrar Image y DrawableCache en ImageView

 ImgView.setImageBitmap(null); ImgView.destroyDrawingCache(); 

Espero que esto funcione para ti !

Si ninguna de estas soluciones está borrando una imagen que ya ha configurado (especialmente setImageResource(0) o setImageResources(android.R.color.transparent) , verifique que la imagen actual no esté configurada como fondo usando setBackgroundDrawable(...) o algo similar.

Su código simplemente establecerá el recurso de imagen en primer plano en algo transparente frente a esa imagen de fondo que ha establecido y seguirá mostrándose.

Hola, sé que soy muy tarde para esta respuesta, pero pensé que debía compartir esto,

El método para llamar cuando restablece la imagen debe ser el mismo método que invocó mientras lo estaba configurando.

Cuando desee restablecer la fuente de la imagen @ dennis.sheepard, la respuesta solo funciona bien si originalmente está configurando la imagen en el bitmap utilizando setImageResource()

por ejemplo,

Había utilizado setImageBitmap() y, por lo tanto, establecer setImageResource(0) no funcionó, en su lugar utilicé setImageBitmap(null) .

Pude lograr esto definiendo un drawable (algo así como blank_white_shape.xml):

    

Luego, cuando quiero borrar la vista de imagen, solo llamo

  imageView.setImage(R.drawable.blank_white_shape); 

¡Esto funciona maravillosamente para mí!

Para la imagen del elemento ListView puede establecer ImageView.setVisibility(View.INVISIBLE) o ImageView.setImageBitmap(null) en el adaptador de lista para el caso “sin imagen”.

Como kwasi escribió y golu editó, puede usar transparente, en lugar de blanco:

Archivo drawable/transparent.xml

 < ?xml version="1.0" encoding="utf-8"?>    

Dentro de una actividad, vista, etc.

 view.setImageResource(R.drawable.transparent); 

Para eliminar la imagen en el uso de ImageView:

title_image.setImageResource(-1);

esto funciona para mi

Si utiliza la biblioteca de soporte, obtiene AppCompatImageView lugar de ImageView , que es compatible con setImageResource(0) en todos los dispositivos, por lo que debería estar de acuerdo con usarlo de la misma manera que con setImageDrawable(null) y setImageBitmap(null)

De lo contrario, debería funcionar bien a partir de alguna versión de Android. De acuerdo con el código de Android y de acuerdo con mis pruebas, creo que debería ser seguro usar setImageResource(0) desde Android API 22 (5.1). Puedes ver el código Android de API 22 vs API 21, aquí

Estaba enfrentando el mismo problema, cambié el color de fondo de la vista al color de fondo del diseño, y puedo hacer esto:

  edit_countflag.setBackgroundColor(Color.parseColor("#ffffff")); 

// luego establece la imagen

 edit_countflag.setImageResource(R.drawable.flag_id); 

¿Puedo simplemente señalar lo que están tratando de establecer e int donde está esperando un drawable.

¿No deberías hacer lo siguiente?

 imageview.setImageDrawable(this.getResources().getDrawable(R.drawable.icon_image)); imageview.setImageDrawable(getApplicationContext().getResources().getDrawable(R.drawable.icon_profile_image)); 

Pruebe mPhotoView.setAlpha(0) para que la imagen sea completamente transparente (restaurar con 255).