Хранение изображения с камеры в определенной папке путем создания в Android
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. Я пробовал много примеров, но это не работает. Может кто-нибудь сказать мне фрагмент для моего кода, чтобы создать папку и сохранить захваченное изображение.
3 ответа
//camera stuff
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
//folder stuff
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File imageFile = new File(imagesFolder, "SC_" + timeStamp + ".png");
Uri uriSavedImage = Uri.fromFile(imageFile);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
Попробуйте этот код.
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;
}
Открывая камеру, вы можете указать путь для сохранения изображения, которое щелкает ваша камера. Посмотри на
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);
}
});
Надеюсь, это работает для вас.