2017-02-22 105 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