2017-01-02 4 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)

 Смежные вопросы

  • Нет связанных вопросов^_^