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:
- Cómo obtener el color de fondo de un ImageView
- Android setX () y setY () comportándose de manera extraña
- Rellene dos superposiciones de imagen como la barra de búsqueda en el evento táctil de la vista de imagen
- Hacer fondo transparente de los iconos de Android en eclipse
- ¿Por qué imageView.setLayerType (View.LAYER_TYPE_SOFTWARE, null); Y <aplicación android: hardwareAccelerated = "false" tienen un efecto diferente?
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?
- No se puede arrastrar y soltar una imagen simple en el estudio android
- Cómo obtener color en el punto (o píxel) de una imagen en evento táctil en android
- La imagen de Android muestra una imagen verdosa
- Android: ¿Cómo detectar la orientación de la imagen (vertical o horizontal) seleccionada en la galería mientras se ajusta en una vista de imagen?
- Visualización de imagen de mapa de bits en vista de imagen mediante adaptador simple
- Cómo animar ImageView de centro de cultivo para llenar la pantalla y viceversa (estilo de facebook)?
- Efecto ondulado en estado prensado + transparencia en estado normal
- ¿Cuál es la diferencia entre src y el fondo 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)
- Las versiones resueltas para la aplicación (22.0.0) y la aplicación de prueba (21.0.3) difieren
- Establecer el peso de diseño de un TextView programaticamente