1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

ImageView auswechseln, wie?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Garnet, 26.07.2012.

  1. Garnet, 26.07.2012 #1
    Garnet

    Garnet Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    71
    Erhaltene Danke:
    1
    Registriert seit:
    21.05.2012
    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?
     
  2. BFK, 27.07.2012 #2
    BFK

    BFK Erfahrener Benutzer

    Beiträge:
    160
    Erhaltene Danke:
    10
    Registriert seit:
    08.12.2010
    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...!
     
  3. m1s73r, 27.07.2012 #3
    m1s73r

    m1s73r Junior Mitglied

    Beiträge:
    42
    Erhaltene Danke:
    5
    Registriert seit:
    18.02.2012
    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...
     
  4. Garnet, 28.07.2012 #4
    Garnet

    Garnet Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    71
    Erhaltene Danke:
    1
    Registriert seit:
    21.05.2012
    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]
     

Diese Seite empfehlen