Home Menu

Menu



Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android


 
Herramientas
  #1  
Viejo 28/03/12, 20:40:31
Avatar de Capitan Kirk
Capitan Kirk Capitan Kirk no está en línea
Usuario novato en la web
Mensajes: 28
 
Fecha de registro: mar 2012
Mensajes: 28
Modelo de smartphone: samsung galaxy sii
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
cambiar imagenview en tiempo de ejecución

Tengo una imagen definida en el xml como:

<ImageView
android:id="@+id/icono"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:src="@drawable/perro"
/>

y funciona perfectamente, muestra la imagen "perro" que se encuentra en la carpeta "drawable".

Pero, ¿como la modifico en tiempo de ejecución mediante java?

lo he intentado con:

ImageView imagen = (ImageView) findViewById(R.id.icono);
imagen.setImageBitmap ("@drawable/"+parametro);

la variable "parametro" contiene el valor "perro"

pero da error, me dice "The method setImageBitmap(Bitmap) in the type ImageView is not applicable for the arguments (String)"

entonces, ¿como lo haría?
Responder Con Cita


  #2  
Viejo 28/03/12, 23:36:12
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Para obtener el R.drawable.XXXX por su nombre a partir de un string necesitas hacer esto:

int res_imagen = context.getResources().getIdentifier("drawable/" + nombreImagen, null, context.getPackageName());

Y para asginarla:

imagen.setImageResource(res_imagen);
Responder Con Cita
  #3  
Viejo 29/03/12, 18:11:22
Avatar de Capitan Kirk
Capitan Kirk Capitan Kirk no está en línea
Usuario novato en la web
Mensajes: 28
 
Fecha de registro: mar 2012
Mensajes: 28
Modelo de smartphone: samsung galaxy sii
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Hola kriogeN gracias por responder.

el caso es que no me termina de funcionar tu ejemplo, en la linea:

int res_imagen = context.getResources().getIdentifier("drawable/" + nombreImagen, null, context.getPackageName());

me da el error:

"Multiple markers at this line
- context cannot be resolved
- context cannot be resolved"

además de marcarme en rojo los 2 "context"

ya prové a añadir un: "import android.content.Context;" pero nada, el error sigue saliendo.
Si me puedes ayudar te lo agradecería.
Responder Con Cita
  #4  
Viejo 29/03/12, 21:38:38
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Prueba con el nombre de tu Activity.this en lugar de context.

Es decir, si tu Activity se llama CambiaImagen en lugar de "context" pon "CambiaImagen.this"
Responder Con Cita
  #5  
Viejo 30/03/12, 12:36:33
Avatar de Capitan Kirk
Capitan Kirk Capitan Kirk no está en línea
Usuario novato en la web
Mensajes: 28
 
Fecha de registro: mar 2012
Mensajes: 28
Modelo de smartphone: samsung galaxy sii
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Si, asi funciona, muchas gracias, me has ayudado mucho.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 11:20:20 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007