2016-07-06 21 views
2

Ich mache einen Screenshot und speichere ihn im Speicher mit meinem Anwendungsnamen. Es gibt keinen Fehler und speichert das Foto im Speicher, aber es erscheint in der Galerie, nachdem ich mein Telefon neu gestartet habe.Bild in der Galerie speichern

Meine Methode für Foto speichern ist wie unten:

public void saveQuoteImage(Bitmap quoteImage){ 
    Date now = new Date(); 
    android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", now); 
    try { 
    // image naming and path to include sd card appending name you choose for file 

    String dirPath=Environment.getExternalStorageDirectory().toString()+File.separator+"quotes_king"; 

    File dirFile=new File(dirPath); 
    if(!dirFile.exists())dirFile.mkdirs(); 

    // String mPath = Environment.getExternalStorageDirectory().toString() + "/" + now + ".jpg"; 
    // create bitmap screen capture 
    File imageFile = new File(dirFile.getPath()+File.separator+ now + ".jpg"); 

    FileOutputStream outputStream = new FileOutputStream(imageFile); 
    int quality = 100; 
    quoteImage.compress(Bitmap.CompressFormat.JPEG, quality, outputStream); 

    outputStream.flush(); 
    outputStream.close(); 

    } catch (Throwable e) { 
    // Several error may come out with file handling or OOM 
    e.printStackTrace(); 
    } 
} 

Was ich in dieser bin fehlt?

Dank

+0

was ist der Fehler? –

+0

@victorsosa Danke für den Kommentar. Es gibt keinen Fehler, aber zeigt das gespeicherte Bild nur nach dem Neustart meines Handys. –

Antwort

4

Sie müssen nur bei MediaScanner sagen, dass die Datei vorhanden ist.

Etwas wie folgt aus:

public final void addManually(File file) { 
     try{ 
      MediaStore.Images.Media.insertImage(mContext.getContentResolver(), 
        file.getAbsolutePath(), file.getName(), null); 
      mContext.sendBroadcast(new Intent(
        Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, 
        Uri.fromFile(file)) 
      ); 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 
+0

Das funktioniert gut :) –

0

Verwenden Medien Scanner in android.Just den Code hinzuzufügen.

MediaScannerConnection.scanFile(this, new String[] { imagefile.toString() }, null, null); 
Verwandte Themen