ImageView auswechseln, wie?

G

Garnet

Ambitioniertes Mitglied
1
Folgendes Problem:
Ich habe eine Liste und je nachdem auf welchen Listeneintrag ich klicke komme ich auf eine neue Bildschirmseite in dem eine ImageView angezeigt wird. Diese soll immer ausgewechselt werden, je nachdem auf welchen Eintrag ich gerade geklickt habe soll immer die passende ImageView dafür angezeigt werden.

Wie kann ich das am besten machen? Ich hatte mir das jetzt so gedacht, dass ich eine ID oder den Dateinamen der ImageViews in meiner Datenbank speichere und dadurch dann unterscheiden kann welches Bild angezeigt werden soll.
Aber dann müsste ich ja wahrscheinlich die ImageViews im Java Code erzeugen. Wie kann ich dort dann die Position bzw. Größe der ImageView festlegen? Oder gibt es noch einen einfacheren Weg das zu machen?
 
Hallo,
Erstell doch einfach ne Activity mit einem ImageView (per xml) und bei onCreate der Activity importiertst du mittels Code das gewünschte Bild in deinem ImageView...!
 
Es gibt eine einfache Methode:

Du hast für jedes Bild eine eigene Variable, beim Aufrufen deiner "Bild-Anzeige-Activity" übergibst du, je nach gedrücktem ListView die jeweilige Variable, und in der Activity prüfst du dann welche Ausgewählt wurde durch eine if else Verzweigung...
 
Wie würde das mit dem importieren aussehen?
Die zweite Methode mit der if-else Abfrage fällt wohl schonmal aus, weil es ungefähr 100 Bilder sind.

Also ich hab es jetzt mal folgendermaßen gemacht:
Hab mir in meiner Datenbank zu jedem Bild den Pfad gespeichert "drawable/bildname" und dann diesen ausgelesen und in einer Variablen "fotoID" gespeichert. Dann folgenden Code geschrieben:

Code:
[SIZE=2][LEFT]RelativeLayout rl = (RelativeLayout) findViewById(R.id.[/SIZE][I][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]relativeLayout[/I][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]); 
ImageView iv = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] ImageView([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]this[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]); 
[/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]int[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] bild = getResources().getIdentifier([/SIZE][SIZE=2][COLOR=#2a00ff][SIZE=2][COLOR=#2a00ff]""[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] + fotoID, [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]null[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2], getPackageName()); iv.setImageResource(bild);

RelativeLayout.LayoutParams params = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] RelativeLayout.LayoutParams(100, 100); 
params.[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]leftMargin[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 5; 
params.[/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]topMargin[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = 15; [/LEFT]
rl.addView(iv, params);

Das funktioniert auch prima. Einziges Problem, was ich jetzt noch habe ist, dass ich vorher in XML ein Platzhalterbild definiert hatte. Wenn ich dieses jetzt lösche, ist das ganze RelativeLayout futsch und ich hab Probleme das wieder hinzubekommen, weil die Bilder die im Code erzeugt werden ja nicht im XML Layout drin sind.
Am liebsten würd ich es so haben, dass das Platzhalterbild nur angezeigt wird, wenn ich kein passendes Bild aus der Datenbank habe.

[/SIZE]
 

Ähnliche Themen

M
Antworten
3
Aufrufe
167
moin
M
C
  • CoderboyPB
Antworten
3
Aufrufe
928
swa00
swa00
OnkelLon
Antworten
13
Aufrufe
1.984
OnkelLon
OnkelLon
Zurück
Oben Unten