我正在尝试使用此代码拍照:
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,其中一些,旧的......
有没有“简单”的方法来实现这一目标?
创建文件夹和创建该文件的部分没什么大不了的,所以:
- 我如何为我用我的应用程序拍摄的照片设置保存路线?
谢谢你。
编辑:
好的,我找到了一些代码,但它不起作用(即使我授予了 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);