2017-02-22 108 views
0

我一直試圖環顧四周無法找到確切的答案。相機意圖圖片只保存在相機相冊

問題是每一次我將文件從我的相機保存的結果 我得到的相冊,並沒有在任何其他專輯 和只有當我從相冊刪除圖片的出現在另一個文件專輯,我可以突然看到,有人可以幫我解決這個問題嗎? 爲什麼會發生這種情況?

我有一個攝像頭的意圖我這樣調用>

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       if (takePictureIntent.resolveActivity(getPackageManager()) != null) { 
        startActivityForResult(takePictureIntent, REQUEST_IMAGE_ONE); 
       } 

然後在我的活動結果:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

     WorkingOrdersModel myWorkorder = WorkingOrdersModel.getWorkorderById(selectedWorkorderId); 

     // get images 
     Bundle extras = data.getExtras(); 
     bitmapFromCamera = (Bitmap) extras.get("data"); 

     if (requestCode == REQUEST_IMAGE_ONE && resultCode == RESULT_OK) { 

      createDirectoryAndSaveFile(bitmapFromCamera, myWorkorder.workorderWifiSSID.toLowerCase()+"_one.png"); 

      cameraImageOne.setImageBitmap(bitmapFromCamera); 

     } else if (requestCode == REQUEST_IMAGE_TWO && resultCode == RESULT_OK) { 

      createDirectoryAndSaveFile(bitmapFromCamera, myWorkorder.workorderWifiSSID.toLowerCase()+"_two.png"); 

      cameraImageTwo.setImageBitmap(bitmapFromCamera); 

     } else if (requestCode == REQUEST_IMAGE_THREE && resultCode == RESULT_OK) { 

      createDirectoryAndSaveFile(bitmapFromCamera, myWorkorder.workorderWifiSSID.toLowerCase()+"_three.png"); 

      cameraImageThree.setImageBitmap(bitmapFromCamera); 

     } 
    } 

,最後保存過程

/** 
    * saves an image from camera in a spacific place 
    * @param imageToSave 
    * @param fileName 
    */ 
    private void createDirectoryAndSaveFile(Bitmap imageToSave, String fileName) { 

     File direct = new File(Environment.getExternalStorageDirectory() + "/WINTouch"); 

     if (!direct.exists()) { 
      File wallpaperDirectory = new File("/sdcard/WINTouch/"); 
      wallpaperDirectory.mkdirs(); 
     } 

     File file = new File(new File("/sdcard/WINTouch/"), fileName); 
     if (file.exists()) { 
      file.delete(); 
     } 
     try { 
      FileOutputStream out = new FileOutputStream(file); 
      imageToSave.compress(Bitmap.CompressFormat.JPEG, 100, out); 
      out.flush(); 
      out.close(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

回答

0

的照相機存儲在.../DCIM/Camera中將拍攝的照片作爲.jpg圖像,然後在Gallery應用程序中,在Camera文件夾中查看。

您正在做的是將此圖片的縮略圖保存到其他位置,而無需通知MediaStore。

你最好改變一下你的意圖,所以相機應用程序將圖片存儲在你提供的路徑。 Google for EXTRA_STREAM EXTRA_OUTPUT?

+0

thnx,你能舉一個例子來說明如何使用這樣的意圖嗎? –

+0

你谷歌嗎? – greenapps