Universal Loader Image - Frage

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Universal Loader Image - Frage

    Hallo zusammen,

    ich bin neu in Android sowie in Java und habe mir mal ein Beispiel von Nostra´s Universal Image Loader angesehen.
    Dabei hat er einen Aufruf:

    Java-Quellcode

    1. Intent intent = new Intent(this, ImageGridActivity.class); intent.putExtra(Extra.IMAGES, IMAGES2); startActivity(intent);


    dieses Extra.IMAGES verweist auf diese Klasse:

    Java-Quellcode

    1. public static class Extra { public static final String IMAGES = "com.nostra13.example.universalimageloader.IMAGES"; public static final String IMAGE_POSITION = "com.nostra13.example.universalimageloader.IMAGE_POSITION"; }


    Leider verstehe ich nicht ganz was das sein soll?
    Was genau geschieht da, bzw welche Informationen/Daten werden von dort geholt?
    Mir ist kein Unterschied aufgefallen als ich
    "com.nostra13.example.universalimageloader.IMAGES"

    rausgenommen habe. Bitte um Aufklärung

    Danke schonmal
    Gruß
  • Es ist immer wieder schön zu sehen, wie man mit irgendwelchen Tutorials allein gelassen wird. ;)

    Java-Quellcode

    1. Intent intent = new Intent(this, ImageGridActivity.class);
    2. intent.putExtra(Extra.IMAGES, IMAGES2);
    3. startActivity(intent);


    Damit wird dem Intent, welches irgendwann die ImageGridActivity starten soll, ein Extra mitgegeben.
    So ein Extra wird an Hand eines Keys identifiziert. Und weil der gute Mann sich die Tipperei sparen wollte, hat er das in einen statischen konstanten String in Extras ausgelagert.

    Was genau da gesetzt wird kann Dir nur der Code verraten. Ich weiß nicht, was IMAGES2 beinhaltet.

    Naja, und wenn Du den String umänderst in "Heinz", "GehtDichNixAn", "Hier gibt es überhaupt gar keinen Key!!!" oder eben "", dann greift die Abfrage trotzdem.
    Im Kreationsprozess der ImageGridActivity wird er sich das Extra nämlich auch an Hand dieses statischen konstanten Strings holen und damit ist er dann auf demselben Stand wie Du, bekommt also alle Änderungen mit, die Du da einträgst.
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.

    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«
  • Hallo Marco Feltmann,

    Ja das stimmt, in dem angeblich ja gut dokumentierten Beispiel, hatte ich schon meine Probleme.
    Was IMAGES2 ist kann ich dir sagen, dass ist mein String Array, mit den Pfaden. Den teil von: intent.putExtra(Extra.IMAGES, IMAGES2); verstehe ich ja auch ^^

    Nur was mir der erste Teil bringt, kann ich nicht ganz nachvollziehen, da ich die ausgelagerte Quelle nicht finden kann. Die Frage ist, wenn ich mir nun eine eigene App baue und mir einige Dinge abgucke, könnte ich doch theoretisch versuchen den Teil einfach wegzulassen (es sei denn es ist etwas essentielles; von dem ich jetzt einfach mal nicht ausgehe^^), da ich den Sinn dahintern icht kenne.
  • Wie der Name schon erahnen lässt, fügst Du damit ein Extra in ein Intent ein.

    Hier wird es vermutlich gemacht, damit man in der startenden Activity auch das eben gewählte Bild angezeigt bekommt.
    Ob Du diese Funktionalität später brauchst kannst nur Du wissen. :)
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.

    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«
  • Also ich danke dir schonmal für deine Hilfe! Ich versuche mal mir das Grundprinzip rauszukopieren..
    Kennst du vielleicht eine bessere Möglichkeit/ein besseres Tutorial, wie ich eine Galerie nachbauen könnte? Ich darf dabei nicht die App-eigene Galerie verwenden.

    Danke
    Gruß
    Newbie

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von SuchANewbie ()

  • +hm+
    Also ein Beispiel liefert Android selbst:
    developer.android.com/guide/topics/ui/layout/gridview.html

    Allerdings ist das Beispiel darauf ausgelegt, dass man die Konzepte versteht, nicht darauf, dass man es einfach 1:1 kopiert. ;)

    Ebenso leider steht hier bei dem Beispiel nicht dabei, welches Vorwissen man zur Umsetzung dessen braucht.
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.

    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«
  • Danke dir. naja ich bin ja hier um es zu lernen. befass ich mich damit, lern ich es unweigerlich^^

    aber gleich mal ne dumme Frage:

    wie kann: R.drawable.sample_2 ein integer sein?

    Java-Quellcode

    1. private Integer[] mThumbIds = { R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7, R.drawable.sample_0, R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3, R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6, R.drawable.sample_7 };

    verstehe ich nicht ganz
    edit: durchs copy paste hats zerschossen, aber ist ja hierbei nicht so wild denke ich
  • Dumm ist die Frage nicht. ;)

    Die R.java beinhaltet halt ganz viele Konstanten. An Hand dieser Konstanten wird eine Ressource (String, Bild, Layout, Id…) eindeutig identifiziert.
    Man könnte das Ganze als eine Art Ressourcen ID ansehen. Wird auch in der Lagerhaltung im Supermarkt an der Ecke gemacht. Statt 'Joghurt, Kirsch, 3.8% Fett" hinterlegen sie lieber die ID 23641990 (EAN = European Article Number, interne Artikelnummerierung, in diesem Fall von Penny).
    Genauso können und wollen sich Bibliotheken und Buchhandlungen nicht auf 'Clean Code – Refactoring, Pattern, Testen und Techniken für sauberen Code; Robert C. Martin' verlassen. Sie schwören eher auf 978-3-8266-5548-7 (ISBN - International Standard Book Number)

    Du reichst also nur eine Konstante aus der R.java weiter.
    Im späteren Verlauf wird aus dieser ID dann beispielsweise über getRessources() die tatsächliche Ressource geladen.
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.

    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«
  • Nein.

    Wenn Dein String Array in einer .xml Datei abgelegt ist, arbeitest Du mit R.string.IMAGES weiter.
    Wenn Dein String Array im Code erzeugt wird, dann musst Du zusehen, wie Du das hinbekommst.

    Tutorials geben Dir niemals eine Anleitung dafür, wie Du genau Deine Wunschapp bauen kannst.
    Du musst also schon selbst Hirnschmalz investieren.
    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.

    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«