我正在尝试使用此代码拍照:
capturarFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("debugging","Has clicat al botó");
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 1888);
}
});
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if( requestCode == 1888 && resultCode == -1) { //-1 = TOT HA ANAT BE.
Bitmap photo = (Bitmap) data.getExtras().get("data");
Log.d("debugging",""+photo.getHeight());
Log.d("debugging",""+photo.getWidth());
((ImageView) myFragmentView.findViewById(R.id.fotoCapturada)).setImageBitmap(photo);
}
}
这非常有效,当我拍摄照片时,它显示在 ImageView 中。但我正在尝试创建某种可编辑选项、旋转等。所以我不想保存它(所以画廊已经缓存了它!!)。
我读过一些类似的问题,这是一件很棒的事情:
- 在SDCARD上创建一个文件夹
- 在那里保存临时图片
- 创建一个 .nomedia 文件,这样图库就无法访问它。
- 删除或保存对图片的应用,并将其保留在该文件夹中。
我正在尝试更新上面的代码,以使其适应这些要点,但是我在谷歌中找到的代码总是使用其他 api,其中一些是旧的...
有什么“简单”的方法可以做到这一点吗?
创建文件夹和创建该文件的部分没什么大不了的,所以:
- 如何为我的 App 拍摄的照片设置保存路径?
谢谢。
编辑:
好的,我找到了一些代码,但它不起作用(即使我给了 SD 写入权限):
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory().getPath() + "/folder/" + "filename" + ".jpg");
Uri imageUri = Uri.fromFile(file);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(cameraIntent, 1888);
最佳答案
好吧,我终于找到了如何将图片保存到我们想要的 URI 中:
public void onClick(View v) {
Log.d("debugging","Has clicat al botó");
File folder = new File(Environment.getExternalStorageDirectory().toString()+"/ImagesFolder/");
folder.mkdirs();
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri uriSavedImage=Uri.fromFile(new File(Environment.getExternalStorageDirectory().toString()+"/ImagesFolder/imatge.jpg"));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(cameraIntent, 1888);
}
就是这样。
请记住授予在 SDCard 上写入的权限。
关于android - 拍摄照片而不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185184/