it-swarm.com.de

Android ImageView setImageResource im Code

Ich habe ein imageView, mit dem ich ein kleines Symbol des Landes anzeigen möchte, in dem Sie sich gerade befinden. Ich kann den Ländercode erhalten, aber das Problem ist, dass ich die imageView-Ressource nicht dynamisch ändern kann. Meine Bilddateien sind alle Kleinbuchstaben (Beispiel: Ländercode = USA, Bilddatei = USA).

Mein Code (CountryCode ist der aktuelle CountryCode in Großbuchstaben):

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

Nun, natürlich funktioniert das nicht, weil setImageResource ein int will, wie kann ich das machen? Vielen Dank im Voraus: D

17
arielschon12

Eine einfache Möglichkeit, diesen Ländernamen, den Sie haben, einer int zuzuordnen, die in der setImageResource-Methode verwendet werden soll, ist:

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

Sie sollten jedoch wirklich versuchen, verschiedene Ordnerressourcen für die Länder zu verwenden, die Sie unterstützen möchten.

30
Luksprog

So setzen Sie ein Bild mit der Methode setImageResource () in ImageView:

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

sie verwenden diesen Code

ImageView[] ivCard = new ImageView[1];

@override    
protected void onCreate(Bundle savedInstanceState)  

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