Saltar al contenido

Cambiar la imagen de ImageView mediante programación en Android

No dudes en compartir nuestra web y códigos con otro, ayúdanos a ampliar esta comunidad.

Solución:

Eso sucede porque estás configurando el src del ImageView en lugar del fondo.

Usa esto en su lugar:

qImageView.setBackgroundResource(R.drawable.thumbs_down);

Aquí hay un hilo que habla sobre las diferencias entre los dos métodos.

Uso en XML:

android:src="@drawable/image"

uso de la fuente:

imageView.setImageDrawable(ContextCompat.getDrawable(activity, R.drawable.your_image));

Respuesta corta

Simplemente copie una imagen en su res/drawable carpeta y uso

imageView.setImageResource(R.drawable.my_image);

Detalles

La variedad de respuestas puede causar un poco de confusión. Tenemos

  • setBackgroundResource()
  • setBackgroundDrawable()
  • setBackground()
  • setImageResource()
  • setImageDrawable()
  • setImageBitmap()

Los métodos con Background en su nombre todos pertenecen a la View clase, no para ImageView específicamente. Pero desde ImageView hereda de View también puedes usarlos. Los métodos con Image en su nombre pertenecen específicamente a ImageView.

Él View todos los métodos hacen lo mismo entre sí (aunque setBackgroundDrawable() está en desuso), por lo que solo nos centraremos en setBackgroundResource(). Del mismo modo, el ImageView Todos los métodos hacen lo mismo, así que solo nos centraremos en setImageResource(). La única diferencia entre los métodos es el tipo de parámetro que pasa.

Configuración

Aquí hay un FrameLayout que contiene un ImageView. Él ImageView inicialmente no tiene ninguna imagen en él. (Solo agregué el FrameLayout para poder poner un borde alrededor. De esa manera usted puede ver el borde de la ImageView.)

ingrese la descripción de la imagen aquí




    

        

    

A continuación compararemos los diferentes métodos.

establecerRecursoImagen()

Si usa ImageView setImageResource(), la imagen mantiene su relación de aspecto y se redimensiona para ajustarla. Aquí hay dos ejemplos de imágenes diferentes.

  • imageView.setImageResource(R.drawable.sky);
  • imageView.setImageResource(R.drawable.balloons);

ingrese la descripción de la imagen aquí

establecerrecurso de fondo()

Uso de vistas setBackgroundResource()por otro lado, hace que el recurso de la imagen se estire para llenar la vista.

  • imageView.setBackgroundResource(R.drawable.sky);
  • imageView.setBackgroundResource(R.drawable.balloons);

ingrese la descripción de la imagen aquí

Ambas cosas

La imagen de fondo de View y la imagen de ImageView se dibujan por separado, por lo que puede configurar ambas.

imageView.setBackgroundResource(R.drawable.sky);
imageView.setImageResource(R.drawable.balloons);

ingrese la descripción de la imagen aquí

Tienes la posibilidad compartir esta noticia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *