2012-09-28 29 views
12

que tienen un imageView que quiero mostrar un pequeño icono del país que se encuentra actualmente. Puedo conseguir el código de país, pero el problema es que no puedo cambiar dinámicamente el recurso imageView. Mis archivos de imagen son todo en minúsculas (ejemplo: código de país = US, archivo de imagen = us)Android ImageView setImageResource en el código

Mi código (countryCode es la countryCode actual en letras mayúsculas):

String lowerCountryCode = countryCode.toLowerCase(); 
    String resource = "R.drawable." + lowerCountryCode; 
    img.setImageResource(resource); 

Ahora, por supuesto, esto no lo hará trabajo porque setImageResource quiere una int, entonces, ¿cómo puedo hacer esto? Gracias de antemano: D

Respuesta

27

Una manera fácil de asignar ese nombre de país que tiene a un int para ser utilizado en el método setImageResource es:

int id = getResources().getIdentifier(lowerCountryCode, "drawable", getPackageName()); 
setImageResource(id); 

Pero realmente debería tratar de utilizar diferentes recursos carpetas para los países que desea apoyar.

+0

Muchas gracias, funcionó a la perfección :) – arielschon12

+0

Funcionó muy bien. Gracias. – rsc

-3

es posible que intente esto: -

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.image_name)); 
+0

Eso no ayudó, getDrawable() quiere un int, así que estoy proporcionando el " R.Drawable.image_name "como una variable de cadena ... ¿De cualquier forma alrededor de eso? – arielschon12

0

se utiliza ese código

ImageView[] ivCard = new ImageView[1]; 

@override  
protected void onCreate(Bundle savedInstanceState) 

ivCard[0]=(ImageView)findViewById(R.id.imageView1); 
+0

Esto no está relacionado con la pregunta, y no compila ... – Karu

15

Configuración de una imagen en ImageView con setImageResource() método:

ImageView myImageView = (ImageView)v.findViewById(R.id.img_play); 
// supossing to have an image called ic_play inside my drawables. 
myImageView.setImageResource(R.drawable.ic_play); 
Cuestiones relacionadas