2012-04-03 11 views
1

ich auf diese Weise ein paar Bilder auf der SD-Karte speichere:löschen Bilder von SD-Karte sowie die Galerie

File dir = new File(fullPath); 
         if (!dir.exists()) { 
          dir.mkdirs(); 
         } 
         String id = Integer.toString(i+1); 
         OutputStream fOut = null; 
         File file = new File(fullPath, id); 
         file.createNewFile(); 
         fOut = new FileOutputStream(file); 

         // 100 means no compression, the lower you go, the stronger the compression 
         bm.compress(Bitmap.CompressFormat.PNG, 100, fOut); 
         fOut.flush(); 
         fOut.close(); 

         MediaStore.Images.Media.insertImage(this.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()); 

Allerdings, wenn ich die Bilder von der SD-Karte löschen, die sie in der Galerie gehalten werden.

File path = new File(path); 
      File[] lstFile; 

      if(path.exists()){ 
       lstFile = path.listFiles(); 
       for(int i =0; i<lstFile.length;i++){ 
        File file = lstFile[i]; 
        file.delete(); 
       } 
       path.delete(); 
      } 

Wie kommt es, dass diese Bilder in der Galerie bleiben und wie kann ich diese löschen? Gibt es eine Möglichkeit, in erster Linie zu vermeiden, dass diese Bilder in der Galerie gespeichert werden?

+0

Was ist mit der Miniaturansicht, die MediaStore erstellt? Könnte es nicht sein, wo sich der "Speicher" Ihrer gelöschten Datei befindet? – pouzzler

Antwort

1

Oh! Ich hatte nicht bemerkt

"Gibt es eine Möglichkeit, in erster Linie zu vermeiden, dass diese Bilder in der Galerie gespeichert sind?"

Ja, gibt es. Entfernen

MediaStore.Images.Media.insertImage(this.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()); 

und die Datei nur die File-Klasse unter Verwendung speichern, nicht die Mediastor Klasse, dessen Zweck es ist genau die Galerie zu verwalten.

+0

Also im Grunde muss ich nur entfernen MediaStore.Images.Media.insertImage (this.getContentResolver(), file.getAbsolutePath(), file.getName(), file.getName()); und es wird nicht in der Galerie eingeben? – Max

+0

Ich denke schon, ich bin wirklich schlecht in outputstreams und so. Kommentieren Sie es, kompilieren Sie, überprüfen Sie, ob Ihre Datei gespeichert ist, fragen Sie jemand anderen, wenn es nicht ist;) – pouzzler

+0

war genau das. Ich sollte wirklich vorsichtiger sein, was ich benutze. Danke für die Hilfe. – Max