2010-12-04 4 views
1

Angenommen, ich möchte ein bestimmtes Bild auf dem Hauptbildschirm meiner Karte haben. Außerdem gibt es eine Menüoption, mit der der Benutzer ein Bild aus der Galerie auswählen kann. Nach der Auswahl verkleinert/beschneidet es das Bild und speichert es im internen Speicher der App (using something like here). Wenn ich das richtig verstehe, bleibt das Bild auch nach dem Beenden der App erhalten.Wo speichern Sie ein Standardbild auf dem internen Speicher von Android?

Jetzt sollte immer nur ein Bild auf einmal angezeigt werden, daher sollte die vorherige Bilddatei bei jedem Ausführen der Menüoption überschrieben werden. Wenn der Benutzer das Bild jedoch nicht ändert, sollte immer noch eine Standardbilddatei angezeigt werden. Wo sollte dieses Bild in meinem Projekt gespeichert werden?

Oder soll ich einfach ein Standard-Image in meinem Drawable- oder Raw-Resource-Verzeichnis behalten und ein boolesches Flag behalten, um zu wissen, ob ein anderes Image geladen werden muss? Allerdings müsste ich sicherstellen, dass der boolesche Wert nach dem Absturz der App erhalten bleibt. Möglicherweise mit gemeinsamen Einstellungen?)

Antwort

1

Jede Art von Bild, die mit Ihrer App kommt, sollte in Ihren zeichnenden Ressourcen sein. Ziehen Sie einfach eine PNG- oder JPEG-Datei in den Ordner res/drawables. Das ist bei weitem der einfachste Weg, und es ist leicht für Sie zu pflegen.

Verwenden Sie BitmapFactory.decodeResource(), um ein Bitmap aus dieser Ressource zu erstellen, oder verwenden Sie BitmapFactory.decodeFile(), wenn dieses benutzerdefinierte Bild verfügbar ist.

Ich kenne Ihre App nicht, also weiß ich nicht, wie Sie entscheiden, ob Sie das Standardbild oder das benutzerdefinierte Bild verwenden möchten. Sie können nach der Existenz der Datei suchen, wenn dies ein gültiges Kriterium ist, oder Sie können einen booleschen Wert in den gemeinsamen Einstellungen verwenden, wie Sie es vorgeschlagen haben.