|
||
|
![]() |
![]() |
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
|
||||
|
||||
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? |
|
#2
|
||||
|
||||
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); |
#3
|
||||
|
||||
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. |
#4
|
||||
|
||||
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" |
#5
|
||||
|
||||
Si, asi funciona, muchas gracias, me has ayudado mucho.
|
![]() |
![]() |
||||||
|