2011-12-18 54 views
0

我正在寫一個Android應用程序,可以拍照並將它們保存在SD卡上。之後,我需要在GridView中顯示圖片,用戶可以選擇一個。這是我的代碼保存圖片:如何將保存的圖像添加到mediastore並生成縮略圖?

Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() { 
     @Override 
     public void onPictureTaken(byte[] data, Camera c) {   
      currentPictureName = (String) getResources().getText(R.string.username) 
        + System.currentTimeMillis() + ".jpg"; 

      FileOutputStream outStream = null; 
      try { 
       outStream = new FileOutputStream(sdcardPath + currentPictureName); 
       outStream.write(data); 
       outStream.close(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } finally { 
       mCamera.startPreview(); 
      } 
     } 

但是,沒有保存的圖像縮略圖顯示在GridView中。如何自動生成所有保存的圖像的縮略圖,並將所有內容添加到MediaStore以便稍後可以訪問它們?

回答

0

Found this。這工作完全正常,所有縮略圖都會自動生成

1

嘗試使用scanFile()函數。

您必須實現一個媒體掃描儀連接客戶端

private class ImageScannerClient implements MediaScannerConnection.MediaScannerConnectionClient { 

     @Override 
     public void onMediaScannerConnected() { 
      // Start scanning files you have in a que 
     } 

     @Override 
     public void onScanCompleted(String path, Uri uri) { 
      // Run some code, then maybe initiate scan of next file in que 
     } 

} 

在的onCreate您可以連接到媒體掃描儀,像這樣:

// Connect to media scanner 
    this.mediaScanner = new MediaScannerConnection(getApplicationContext(), new ImageScannerClient()); 
    this.mediaScanner.connect(); 

而在其他一些時候,你必須將文件添加到闕或者要掃描的東西。

+0

謝謝,我也發現這個http://www.mail-archive.com/[email protected]/msg63884.html 試試這個 –

+0

'scanFile ()'也自動生成縮略圖? –

+0

是的,我相信。 –