Frage

Ich habe die Galerieansicht in einem Bildschirm mit dem Namen display_image.xml implementiert, in dem ich verschiedene Bilder angezeigt habe, die jetzt auf der SD-Karte verfügbar sind, wenn der Benutzer ein Bild auswählt und die Schaltfläche zum Speichern des Bildes auf demselben Bildschirm drückt. display_image.xml, dann sollte das ausgewählte Bild in seinem / ihrem geändert werdenProfilbild in einem anderen Bildschirm.

Meine Frage ist, wie ich dieses Bild von einem Bildschirm erhalten kann, um das Bild des Benutzers auf einem anderen Bildschirm zu ändern, und dass das ausgewählte Bild auch in die Datenbank eingefügt werden sollte, um später erneut abgerufen zu werden, wenn sich der Benutzer später anmeldet.Lassen Sie mich Ihnen sagen, dass mein Bild nicht von einem Webservice stammt.

Bitte helfen Sie mir ......... Danke .........

War es hilfreich?

Lösung 3

Als erstes müssen Sie eine Absicht deklarieren

Intent i_cp = new Intent(this,ImagePicker.class);

und verwenden Sie startActivityForResult(i_cp, 111);, der nach einem Ergebnis sucht. in unserem Fall für die Position des Bildes; ein ganzzahliger Wert.

durch Angabe von request_code (111), der zur Identifizierung des Ergebnisses verwendet wird, wenn es von der gestarteten Absicht zurückgegeben wird. Hier verwenden wir nicht setAction(i_cp.ACTION_PICK); und setType("image/*");, da wir kein Bild zurückgeben, sondern nur die Position des Bildes zurückgeben. Unsere Verwendung von Intent beschränkt sich darauf, nur den ganzzahligen Wert (Wertposition) zu übergeben und abzurufen.

Wie wäre es nun mit der Position des Bildes, das der Benutzer ausgewählt hat? Die Position wird in der onItemClick-Methode von GalleryView durch einen der Parameter ermittelt

public void onItemClick(AdapterView parent, View v, int position,long rid)

deklarieren Sie jetzt eine Variable wie int pos; und weisen Sie -1 zu, um zu identifizieren, ob das Bild ausgewählt ist oder nicht, und wenn das Bild ausgewählt ist, dann bei einem Klickereignis der Schaltfläche zum Speichern des Bilds die Position als übergeben

retIntent.putExtra("SelectedImage", pos);

und in onActivityForResult identifizieren Sie die Absicht anhand des übergebenen Anforderungscodes und extrahieren Sie diese Position als

int pos = data.getExtras().getInt("SelectedImage");

und setzen Sie es als

usr_im.setImageResource(ImagePicker.pics[pos]);

und dieses Array von Bildern [], das alle IDs von Bildern enthält, die in einem der res/drawable-Ordner Ihrer Anwendung gespeichert sind, deklarieren Sie es als

public static Integer[] pics={values};

Andernfalls können Sie das Bild nicht einstellen.

Andere Tipps

Sie können dies auf zwei Arten tun: 1) Übergeben Sie den Pfad der SD-Karte des ausgewählten Bilds und laden Sie das Bild direkt aus dem Pfad in der Bildansicht. 2) Sie können das Bild in Byes [] konvertieren und Bytes [] übergeben und das Bild zurückerhalten.

Ich hoffe du kriegst mich. Viel Glück

Verwenden Sie " activityForResult ".
Das Konzept besteht darin, dass Sie Ihre Bildauswahlaktivität durch Aufrufen von starten

startActivityForResult(INTENT_OF_YOUR_IMAGECHOOSING_ACTIVITY);

Wenn der Benutzer in dieser Aktivität auf eines der Bilder klickt, wird dieses Ereignis wie folgt behandelt:
ein generischer Codetagcode In dieser Absicht setzen Sie das Byte-Array Ihres Bildes in Extras ODER den SD-Kartenpfad Ihres Bildes

Rufen Sie dann OnClick(){<br>Intent resultIntent = new Intent(); auf


Hiermit wird der Aufruf der vorherigen Aktivität in der Methode setResult(RESULT_OK, resultIntent); HIER zurückgegeben. Verwenden Sie die Daten als Absicht, um die gewünschten Informationen abzurufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top