Speichern der bitmap in app-Ordner

Wenn meine app das erste mal startet, es lässt den Benutzer wählen Sie ein Profil-Bild. Diese kann getan werden, nehmen Sie ein Foto im moment, oder wählen Sie es aus der Galerie.

Nachdem der Benutzer bekommt ein Bild, dieses muss gespeichert werden, in das Gerät den internen Speicher und wird in der app-Benutzer-Profil-Bild.

Dieser Prozess funktioniert, der Benutzer bekommt das Bild und dieses zeigt sich in einer Bildansicht, bevor es gespeichert. Aber um das Bild zu speichern in den internen Speicher, ich habe einige Schwierigkeiten. Ich habe versucht, mehrere Möglichkeiten, es zu tun, und die meisten von Ihnen scheinen zu arbeiten. Aber wenn ich Ihnen versuche, das Bild wird nicht gespeichert werden oder zumindest finde ich nicht den Ordner, wo es gespeichert wird.

Habe ich versucht, in diesen 3 Möglichkeiten:

Erste:

File directory = getDir("profile", Context.MODE_PRIVATE);
File mypath = new File(directory, "thumbnail.png");

FileOutputStream fos = null;
try {
    fos = new FileOutputStream(mypath);
    mybitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
    fos.close();
} catch (Exception e) {
    e.printStackTrace();
}

Zweite:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
mybitmap.compress(Bitmap.CompressFormat.PNG, 90, bytes);

FileOutputStream fos = null;
try {
    fos = openFileOutput("thumbnail.png", Context.MODE_PRIVATE);
    fos.write(bytes.toByteArray());
    fos.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

Dritte:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
mybitmap.compress(Bitmap.CompressFormat.PNG, 90, bytes);

File fileWithinMyDir = new File(getFilesDir(), "thumbnail.png");
try {
    FileOutputStream fos = new FileOutputStream(fileWithinMyDir);
    fos.write(bytes.toByteArray());
    fos.close();
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

Suposedly, das Bild wird gespeichert unter dem Pfad: android/data/AppName/app_data/ aber es wird kein Ordner angelegt. Jedenfalls habe ich in anderen Ordnern, aber nichts.

BEARBEITEN-

In der ersten Methode, die ich gesehen habe, ist das werfen einer Ausnahme:

E/SAVE_IMAGE /data/data/com.example.myapp/app_profile/thumbnail.png: open failed: EISDIR (Is a directory)
java.io.FileNotFoundException: /data/data/com.example.myapp/app_profile/thumbnail.png: open failed: EISDIR (Is a directory)
Caused by: libcore.io.ErrnoException: open failed: EISDIR (Is a directory)
hast u hinzufügen schreiben Sie externe Speicher Erlaubnis ?
Ich brauche nicht zu schreiben auf externen Speicher

InformationsquelleAutor masmic | 2015-05-27

Schreibe einen Kommentar