Quelle von ImageView dynamisch Android setzen

9

Ich habe eine ImageView in meiner Szene, auf der ich die Quelle dynamisch basierend auf Benutzereingaben festlegen möchte.

Nehmen wir an, ich habe 4 Bilder in meinem Zeichnungsordner: aaa.png, bbb.png, ccc.png und ddd.png.

Wenn meine Anwendung geladen wird, setze ich das Bild auf: aaa.png

%Vor%

Jetzt habe ich einen EditText, wo ein Benutzer bbb eingeben kann und ich möchte die Bildquelle als bbb.png ändern, oder der Benutzer gibt ccc ein, wechselt die Quelle zu ccc.png etc.

Wie kann ich den Parameter in setImageResource () dynamisch setzen? Ich habe versucht, mit dem Drawable-Objekt herumzuspielen, ohne Erfolg ...

    
Kyle 18.08.2010, 20:45
quelle

3 Antworten

2

Wenn Sie eine offene Texteingabe zulassen möchten, müssen Sie entweder roh verwenden Assets , um sie nach dem String-Namen abzurufen (siehe die Randnotiz auf dieser Seite), oder verwenden Sie magisches Java Reflexion , um ein Feld der R-Klasse nach Namen abzurufen. Alternativ könnten Sie eine HashMap von Zeichenketten auf R.drawable Integer-Werten halten und nachschlagen, aber dann müssen Sie diese hashmap beibehalten.

    
Yoni Samlan 18.08.2010, 21:01
quelle
0

Wenn Sie nur Bilder anzeigen möchten, die Sie in Ihre Zeichenbilder geladen haben, können Sie Spinner verwenden, wobei die ID für das Element als Ressource für Drawable festgelegt wird. Das wäre für Sie einfacher und für den Benutzer einfacher.

    
CaseyB 18.08.2010 20:58
quelle
0

Wenn Sie Reflexionen verwenden möchten, werfen Sie einen Blick auf den folgenden Code:

%Vor%

Ich hoffe, es hilft.

    
Olsi Saqe 08.07.2013 18:00
quelle