2017-02-22 25 views
0

Ive пытались оглянуться, не смог найти точный ответ на этот вопрос.снимки фотокамеры только сохранены в альбоме камеры

проблема заключается в каждый раз, когда я сохранить файл с камеры, на результате я получить файл в фотоаппарате альбом, а не в любом другом альбоме и только если я удалить фотографии из альбома камеры появляется в другом альбом, который я могу вдруг увидеть, может кто-нибудь помочь мне исправить это? Почему это происходит?

У меня есть намерение камеры я называю, как это>

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

экономит Камера взятое изображение как .jpg изображение в .../DCIM/Camera, которое вы затем, в приложении «Галерея», смотрите в папке «Камера».

Что вы делаете, это сохранение миниатюры этого изображения в другом месте, не сообщая об этом MediaStore.

Вы гораздо лучше меняете свое намерение, чтобы приложение камеры сохраняло изображение на пути, который вы предоставляете. Google для EXTRA_STREAM EXTRA_OUTPUT?

+0

thnx, можете ли вы привести пример того, как использовать такое намерение? –

+0

Вы сделали Google? – greenapps

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

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