2016-03-01 2 views
0
imgFavorite.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
      open(); 
     } 
     }); 
    } 
    public void open(){ 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 

     startActivityForResult(intent, 0); 
    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     // TODO Auto-generated method stub 
     super.onActivityResult(requestCode, resultCode, data); 
     Bitmap bp = (Bitmap) data.getExtras().get("data"); 

     imgFavorite.setImageBitmap(bp); 
    Uri selectedImageUri = data.getData(); 
    String selectedImagePath = getRealPathFromURI(selectedImageUri);// this is the location /storage/emulated/0/DCIM/100ANDRO 
}); 

когда кнопка нажата imgFavorite открывает камеру по умолчанию после фотосъемки, он сохраняет в папку по умолчанию, которая называется /storage/emulated/0/DCIM/100ANDRO. Но мне нужно сохранить изображение захвата в определенной папке, создав в коде Android. Я пробовал много примеров, но не работал. может кто-нибудь сказать мне фрагмент моего кода, чтобы создать папку и сохранить изображение захвата.Сохранение изображения с камеры в определенной папке, создавая в андроида

ответ

0

При открытии камеры вы можете указать путь для сохранения изображения, щелкнутого камерой. Посмотрите на

imgFavorite.setOnClickListener(new OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         // TODO Auto-generated method stub 

          String imagePath = "filename" + ".jpg"; 
          File root = new File(Environment.getExternalStorageDirectory() + File.separator + "Directory_Name" + File.separator+ "" + Constants.ORN); 
          root.mkdirs(); 
          if (!root.exists()) { 
           root.mkdir(); 
          } 

          File file = new File(Environment.getExternalStorageDirectory() + File.separator + "Directory_Name" + File.separator + "" + Constants.ORN, imagePath); 
          Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
          Uri outputFileUri = Uri.fromFile(file); 
          mImageCaptureUri = outputFileUri; 
          intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
          startActivityForResult(intent, REQUEST_CODE); 

        } 
       }); 

Надеюсь, он сработает для вас.

+0

'if (! Root.exists()) { root.mkdir();' Вы также должны проверить возвращаемое значение mkdir() и не продолжать, если оно не выполнено. Вместо этого отобразите Toast. – greenapps

+0

Да, это должно быть добавлено. Спасибо за предложение. –

+0

как код должен быть внутри '@Override охраняемых недействительного onActivityResult (интермедиат requestCode, внутр ResultCode, Намерение данные) { });' ' – Vanitha

-1

попробуйте этот код.

imgFavorite.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     open(); 
    } 
     }); 
    } 
public void open(){ 
     Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(getOutputMediaFile()));// 
    startActivityForResult(intent, REQUEST_CODE); 
    } 

private File getOutputMediaFile() { 
    // make a new file directory inside the "sdcard" folder 
    File mediaStorageDir = new File(
      Environment.getExternalStorageDirectory(), "/myApp"); 

    // if this "Camera folder does not exist 
    if (!mediaStorageDir.exists()) { 
     // if you cannot make this folder return 
     if (!mediaStorageDir.mkdirs()) { 
      return null; 
     } 
    } 

    // take the current timeStamp 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss") 
      .format(new Date(System.currentTimeMillis())); 
    File mediaFile; 
    // and make a media file: 
    mediaFile = new File(mediaStorageDir.getPath() + File.separator 
      + "IMG_" + timeStamp + ".jpg"); 
    currentFilePath = mediaFile.getAbsolutePath(); 
    return mediaFile; 
} 
+0

Снова это awfull 'getOutputMediaFile()'. CreateFileName() он должен быть вызван. – greenapps

0

// камеры материал
Намерение imageIntent = новый Intent (android.provider.MediaStore.ACTION_IMAGE_CAPTURE); String timeStamp = new SimpleDateFormat ("yyyyMMdd_HHmmss"). Format (new Date());

// папка
Файлы изображенийFolder = новый файл (Environment.getExternalStorageDirectory(), "MyImages"); imagesFolder.mkdirs();

Файл imageFile = new Файл (imagesFolder, "SC_" + timeStamp + ".png"); Uri uriSavedImage = Uri.fromFile (imageFile);

imageIntent.putExtra (MediaStore.EXTRA_OUTPUT, uriSavedImage); startActivityForResult (imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

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