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?

6 Solutions collect form web for “Cambiar la fuente de ImageView”

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)

  • Vista de imagen en movimiento con evento táctil
  • ¿Cómo puedo crear múltiples menús contextuales?
  • Android ImageView.setMatrix () y .invalidate () - el repintado toma demasiado tiempo
  • Android-TextView setText en Html.fromHtml para mostrar la imagen y el texto
  • Cómo convertir una cadena Base64 en una imagen de BitMap para mostrarlo en un ImageView?
  • Android agrega imagen de flecha a spinner
  • Android: ¿Cómo renderizar una imagen de flujo continuo a ImageView sin cargar el mapa de bits completo?
  • Establezca la altura de imageview como matchparent programmatically
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.