2016-05-13 13 views
0

Ich bin derzeit erlaubt meinen Benutzer ein Bild aus der Galerie auswählen und ich lade es in einem ImageView. Dann speichere ich in meinen sharedPreferences den URI des Bildes, um es später wieder laden zu können.Android Store und laden Bild aus der Galerie

Es wird nicht funktionieren, und ich habe festgestellt, dass irgendwie die URI des Bildes geändert hat.

Ich frage mich, wie ich das Bild, das ich aus der Galerie bekommen habe, einfach speichern kann, um es später neu laden zu können.

+0

Kopieren Sie das Bild in Ihren App-Speicher und speichern Sie seinen Pfad in den Einstellungen. –

Antwort

2

Dann speichere ich in meinem sharedPreferences der URI des Bildes um in der Lage sein, um es später wieder zu laden.

Das wird nicht funktionieren. Nicht nur könnte die Uri unterscheiden, aber wenn die Uri hat ein content Schema, verlieren Sie die Rechte, mit dem Inhalt von Uri identifiziert, nachdem Ihr Prozess endet. Außerdem kann der Benutzer das Bild loswerden.

Ich frage mich, wie ich das Bild, das ich aus der Galerie bekommen habe, einfach speichern kann, um es später neu laden zu können.

Verwenden Java I/O eine Kopie des Bildes in eine Datei, die Sie steuern (zum Beispiel auf internal storage), dann diese Kopie verwenden. Passen Sie Ihre Benutzeroberfläche entsprechend an (z. B. verwenden Sie Verben wie "Importieren" anstelle von "Link").

Je nachdem, wie Sie bekam, dass Uri, könnten Sie in der Lage sein takePersistableUriPermission() anrufen, um zu versuchen langfristige Rechte an den Inhalten zu erhalten, in welchem ​​Fall der Uri sollte auch stabil sein (unter der Annahme, dass der Benutzer nicht oder nicht bewegt löschen der Inhalt in Frage).

0

besser zum Speichern von Bildpfad in gemeinsamen Vorlieben, es dann wieder neu zu laden

Verwandte Themen