2011-03-30 27 views
4

我使用Android相機拍攝一張照片在我的活動:如何在使用Android相機時刪除圖庫中的重複圖片?

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, getImagePath()); 
startActivityForResult(intent, TAKE_PHOTO_CODE); 

當我離開的相機應用,照片保存在兩個地方:

  1. 在由getImagePath指定的路徑()方法(這是正確的);
  2. 進入畫廊。我不想那麼做。

如何防止將照片保存到圖庫中?如果我不能這樣做,我怎麼才能在我的onActivityResult()中獲得照片路徑,這樣我就可以刪除它了?

回答

1

對於Intent.ACTION_GET_CONTENT您可以刪除圖庫文件(複製到您的文件夾後)。也許這也適用於MediaStore.ACTION_IMAGE_CAPTURE(與MediaStore.EXTRA_OUTPUT)。我使用以下代碼片段刪除Intent.ACTION_GET_CONTENT返回的圖庫文件:

public String getRealPathFromURI(Uri contentUri) { 
    String[] proj = { MediaStore.Images.Media.DATA }; 
    Cursor cursor = managedQuery(contentUri, proj, null, null, null); 
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
    cursor.moveToFirst(); 
    return cursor.getString(column_index); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    Uri u = data.getData(); 
    new File(getRealPathFromURI(u)).delete(); 
    ... 
+1

此方法不適用於intent Intent(MediaStore.ACTION_IMAGE_CAPTURE),因爲在onActivityResult中返回的意圖(數據,在您的情況下)爲null! – Jack 2016-11-14 13:31:53

0

您是否將圖像保存到您的getImagePath()代碼某處的SD卡中?如果是這樣,Android媒體掃描器將從該位置選取並顯示在畫廊中。您可以在保存圖像的目錄中創建一個名爲.nomedia的空文件,讓Media Scanner忽略該文件夾中的所有媒體文件。

+0

不,getImagePath()只返回一個Uri。我沒有意識到.nomedia文件,可能對未來有用。但它不會解決我的問題。 – 2011-03-31 07:32:03

+0

你在哪裏保存圖像文件? – 2011-03-31 23:35:46

相關問題