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
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.
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);
vous utilisez ce code
ImageView[] ivCard = new ImageView[1];
@override
protected void onCreate(Bundle savedInstanceState)
ivCard[0]=(ImageView)findViewById(R.id.imageView1);