2016-07-06 166 views
2

我正在截取屏幕截圖並使用我的應用程序名稱將其保存在存儲器中。它沒有給出任何錯誤並將照片保存在存儲器中,但重新啓動手機後它會出現在圖庫中。將圖像保存到圖庫中

我保存照片的方法是象下面這樣:

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(); 
    } 
} 

我很想念在這?

謝謝

+0

什麼是錯誤? –

+0

@victorsosa感謝您的評論。它沒有給出任何錯誤,但只有重新啓動手機後才顯示保存的圖像。 –

回答

4

你只需要在MediaScanner告訴你的文件存在。

事情是這樣的:在android.Just

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

這是工作好:) –

0

使用媒體掃描器添加下面的代碼。

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