2017-01-02 16 views
-1

私はAndroid Studioでカメラを作成し、撮影した画像をギャラリーに保存したいと考えています。
私はCamera2 Apiを使用していますが、実際に画像を保存する方法はわかりません。
さらに、私の写真がどこに保存されるのか分かりません。アプリは言う:Saved: /storage/emulated/1.jpg。ここでAndroidのギャラリーに画像を保存する方法は?

はいくつかのコードです:

mFile = new File(Environment.getExternalStorageDirectory() + "1.jpg"); 

private final ImageReader.OnImageAvailableListener mOnImageAvailableListener 
     = new ImageReader.OnImageAvailableListener() { 

    @Override 
    public void onImageAvailable(ImageReader reader) { 
     mBackgroundHandler.post(new ImageSaver(reader.acquireNextImage(), mFile)); 
    } 

}; 

private static class ImageSaver implements Runnable { 

    /** 
    * The JPEG image 
    */ 
    private final Image mImage; 
    /** 
    * The file we save the image into. 
    */ 
    private final File mFile; 

    public ImageSaver(Image image, File file) { 
     mImage = image; 
     mFile = file; 
    } 

    @Override 
    public void run() { 
     ByteBuffer buffer = mImage.getPlanes()[0].getBuffer(); 
     byte[] bytes = new byte[buffer.remaining()]; 
     buffer.get(bytes); 
     FileOutputStream output = null; 
     try { 
      output = new FileOutputStream(mFile); 
      output.write(bytes); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      mImage.close(); 
      if (null != output) { 
       try { 
        output.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 

} 

次の問題は、私はより多くの写真を保存する方法がわからないこと、です。この場合、常に1.jpgが上書きされます。ギャラリーであなたの写真を追加するには

答えて

0

private void galleryAddPic() { 
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE); 
    File f = new File(mCurrentPhotoPath); 
    Uri contentUri = Uri.fromFile(f); 
    mediaScanIntent.setData(contentUri); 
    this.sendBroadcast(mediaScanIntent); 
} 

See here

複数の画像を保存するには、すべての新しい写真の新しい名前を生成する(日時やUUIDを使用)

関連する問題