Cambiar la fuente de ImageView

Tengo un ImageView con una imagen de fuente fijada en el xml usando la sintaxis siguiente:

  <ImageView android:id="@+id/articleImg" style="@style/articleImgSmall_2" android:src="@drawable/default_m" /> 

Ahora necesito cambiar esta imagen programáticamente. Lo que tengo que hacer es eliminar la imagen antigua y agregar una nueva aunque. Lo que he hecho es esto:

 myImgView.setBackgroundResource(R.drawable.monkey); 

Funciona, pero noté android apila la nueva imagen en la parte superior de la vieja (no me pregunte cómo descubrí que no es relevante para la discusión :). Definitivamente necesito deshacerse de la antigua antes de establecer la nueva imagen.

¿Cómo puedo lograrlo?

Cambio de la fuente ImageView:

Uso del método setBackgroundResource() :

  myImgView.setBackgroundResource(R.drawable.monkey); 

Usted está poniendo a ese mono en el fondo.

Sugiero el uso del método setImageResource() :

  myImgView.setImageResource(R.drawable.monkey); 

O con el método setImageDrawable() :

 myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey)); 

*** Con el nuevo androide API 22 getResources().getDrawable() ahora está obsoleto. Este es un ejemplo de cómo usar ahora:

 myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme())); 

Y cómo validar las versiones antiguas de la API:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey, getApplicationContext().getTheme())); } else { myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey); } 

Se supone que use setImageResource lugar de setBackgroundResource .

 myImgView.setImageResource(R.drawable.monkey); 

Se utiliza para configurar la imagen en la vista de imagen actual, pero si desea eliminar esta imagen, puede utilizar este código como:

 ((ImageView) v.findViewById(R.id.ImageView1)).setImageResource(0); 

Ahora esto eliminará la imagen de su vista de imagen, ya que ha establecido el valor de recursos a cero.

Obtener ID de ImageView como

 ImageView imgFp = (ImageView) findViewById(R.id.imgFp); 

Entonces usa

 imgFp.setImageResource(R.drawable.fpscan); 

Para establecer la imagen fuente de forma programática en lugar de XML.

O pruebe este. Para mí funciona bien:

 imageView.setImageDrawable(ContextCompat.getDrawable(this, image)); 

Si desea establecer en imageview una imagen que está dentro de los dirs del mipmap , puede hacerlo así:

myImageView.setImageDrawable(getResources().getDrawable(R.mipmap.my_picture)

  • Cómo auto centro de cultivo ImageView Android?
  • ImageView no se extiende (Android)?
  • Mostrar archivo GIF con Glide (carga de imágenes y biblioteca de almacenamiento en caché)
  • Android girar imageview, no puedo establecer la posición final de imageview en onAnimationEnd ()
  • Imagen fuera de límites después de la transformación en la vista
  • ¿Por qué hay pixeles adicionales alrededor de mi Android GridView?
  • ¿Cómo comprobar el tipo de un widget de vista?
  • Cuando haga clic en un botón, gire la imagen en sentido horario en android
  • ImageView vuelve a dimensionar mientras dibuja la forma del borde en él
  • ¿Cómo mantener múltiples capas de ImageViews y mantener su relación de aspecto basada en el más grande?
  • Múltiples animaciones en 1 imageview android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.