Bild in Activity updaten

kukuk

kukuk

App-Anbieter (kostenlos)
29
Hallo ich habe auf meiner Activity ein Image welches ich verändere. Und dies mit folgendem Code.

Global.zaehler wird initialisiert beim start mit dem Wert 0.

Wenn ich nun den zaehler erhöhe mit zaehler+=1;
Ändert sich nicht das Bild.

Lass ich mir mit Toast den Wert ausgeben erhlaten den richtige Wert nämlich 1.

Schreibe ich bei folgender Zeile int id = getResources().getIdentifier("com.anzug:drawable/coat_level" + (Global.zaehler + 1) , null, null);

Wird immer das nächste Bild angezeigt wenn ich Global.zaehler +=1 erhöhe.


Weiß jemand ob ich da irgendwo einen Fehler eingebaut habe?




Code:
ImageView  imgview=(ImageView)findViewById(R.id.image_anzug);
int id = getResources().getIdentifier("com.anzug:drawable/coat_level" + Global.zaehler  , null, null);
imgview.setImageResource(id);
 
Zuletzt bearbeitet von einem Moderator:
Dein Identifier sieht aber SEHR seltsam aus. Ich hätte da eher sowas wie "R.drawable.coat_level"+bla erwartet.
 
Möglich wäre auch, dass du alle deine Drawable IDs in eine ArrayList/List lädst und dann mit dem Integer Global.zähler abrufst.

So z.B.:
Code:
ArrayList<Integer> Bilder = new ArrayList<Integer>();
Bilder.add(R.drawable.coat_level1);
Bilder.add(R.drawable.coat_level2);

ImageView  imgview=(ImageView)findViewById(R.id.image_anzug);
int id = getResources().getIdentifier(Bilder.get(Global.zeahler)  , null, null);
imgview.setImageResource(id);

DieGoldeneMitte schrieb:
Dein Identifier sieht aber SEHR seltsam aus. Ich hätte da eher sowas wie "R.drawable.coat_level"+bla erwartet.
Frage mich, ob das überhaupt möglich ist, da R.drawable ja einen Integer zurückgibt, den man dann ja erhöht oder verringert. Es könnte dann ja passieren, dass man eine andere Ressource auswählt, als man möchte.

Gruß
xilent
 
Xilent schrieb:
Frage mich, ob das überhaupt möglich ist, da R.drawable ja einen Integer zurückgibt...

Der Teil ist schon klar, getIdentifier() liefert zu einer namentlichen ID den Integer Wert (dupilziert also das Verhalten der R Klasse) und er baut ja korrekt einen Namen zusammen und rechnet nicht an der ID herum.

Auf die schnelle kann man eigene Resourceliste auch so bauen:
Code:
private final static int[] bildIds = { R.drawable.coat_level1, R.drawable.coat_level2, .... };
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Xilent

Ähnliche Themen

J
  • Juleru
Antworten
8
Aufrufe
496
Juleru
J
B
Antworten
6
Aufrufe
1.050
jogimuc
J
D
Antworten
23
Aufrufe
2.517
Data2006
D
Zurück
Oben Unten