2012-01-09 16 views
4

可能重複 Stop saving photos using Android native camera停止使用意向時,打開相機通過從我的應用程序中保存圖像

大家好, 我通過使用意向像這樣

Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
startActivityForResult(cameraIntent, ACTIVITY_CAMERA); 

它細很開放的相機,給我造成完美的,但問題是,這也將圖像保存到SD卡也,如何防止這種情況,以停止保存圖像,只是使用該數據進入onActivityResult()方法

+0

爲什麼不刪除onActivityResult()方法中的副本 – 2012-01-24 14:43:17

+0

如何獲取該文件路徑?我已經嘗試過,但在不同的設備有不同的路徑存儲相機拍攝的圖像 – Pratik 2012-01-24 14:48:31

回答

1

我不確定,但嘗試一下。這可能對你有所幫助。

onActivityResult我正在拍攝圖像,然後將其存儲到另一個位圖。

看到這個:

if(resultCode == RESULT_OK && requestCode==TAKE_PHOTO_CODE){ 
     final File file = getTempFile(this);   
     try {   
      tempBitmap = Media.getBitmap(getContentResolver(), Uri.fromFile(file)); 
      photoBitmap = Bitmap.createScaledBitmap(tempBitmap, display.getWidth(), display.getHeight(), true); 
      takePhotoFromCamera = true; 
      // do whatever you want with the bitmap (Resize, Rename, Add To Gallery, etc)   
     } catch (FileNotFoundException e) {   
      e.printStackTrace();   
     } catch (IOException e) {   
      e.printStackTrace();   
     } 
    } 

現在,在這裏你可以把它取位圖後刪除該文件。所以它可能不會保存到SD卡。

試試吧。希望它能幫助你。

或。 。 。

使用此:

代碼來獲取用戶最後拍攝:

String[] projection = new String[] 
{MediaStore.Images.ImageColumns._ID, MediaStore.Images.ImageColumns.DATA, 
MediaStore.Images.ImageColumns.BUCKET_DISPLAY_NAME, 
DATE_TAKEN, MediaStore.Images.ImageColumns.MIME_TYPE}; 

final Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
            projection, null, null, DATE_TAKEN + " DESC"); 

獲得該圖像後,將其刪除。所以它會幫助你。

享受。 :))

+0

謝謝,最後拍攝的圖片的代碼是userful和解決我的問題。 – 2red13 2012-01-25 15:43:51

+0

@ 2red13:歡迎。請享用。 :) – 2012-01-27 04:15:56

+0

**小心**:這是非常非常危險..在某些設備上,我們從應用程序拍攝的照片不會複製到畫廊。在這種情況下,如果我們刪除上次拍攝的照片,它會返回從相機應用拍攝的照片,所以我們最終刪除了錯誤的照片,而不是從我們的應用拍攝的照片。因此,底線是,只刪除創建第二個副本的設備(例如HTC One M8)從畫廊中刪除上次拍攝的照片。 – whoami 2016-02-27 11:48:03

相關問題