web-dev-qa-db-fra.com

Android ImageView setImageResource dans le code

J'ai une imageView que je veux afficher une petite icône du pays dans lequel vous vous trouvez actuellement. Je peux obtenir le code du pays, mais le problème est que je ne peux pas modifier dynamiquement la ressource imageView. Mes fichiers image sont tous en minuscules (exemple: code pays = US, fichier image = us)

Mon code (countryCode est le countryCode actuel en majuscules):

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

Maintenant, bien sûr, cela ne fonctionnera pas car setImageResource souhaite un int, alors comment puis-je le faire? Merci d'avance: D

17
arielschon12

Un moyen simple de mapper ce nom de pays sur une int à utiliser dans la méthode setImageResource consiste à:

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

Mais vous devriez vraiment essayer d'utiliser des ressources de dossiers différentes pour les pays que vous souhaitez prendre en charge.

30
Luksprog

Voici comment définir une image dans ImageView à l'aide de la méthode setImageResource () :

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);
20
Elenasys

vous utilisez ce code

ImageView[] ivCard = new ImageView[1];

@override    
protected void onCreate(Bundle savedInstanceState)  

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