Android 无需保存即可捕获照片

Android 无需保存即可捕获照片,android,android-camera,Android,Android Camera,我正在尝试使用以下代码拍照: capturarFoto.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d("debugging","Has clicat al botó"); Intent cameraIntent = new Intent(android.provider.Med

我正在尝试使用以下代码拍照:

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中。但我正在尝试创建一些可编辑的选项、旋转等,所以我不想保存它(所以gallery已经缓存了!!)

我读过一些类似的问题,这是一件非常好的事情:

  • 在SD卡上创建文件夹
  • 在那里保存临时图片
  • 创建一个.nomedia文件,使gallery无法访问它
  • 删除或保存应用于图片,并将其保留在该文件夹中
我试图更新上面的代码,以适应它来实现这些点,但我在谷歌找到的代码,总是使用其他API,其中一些,旧的

有什么“简单”的方法来实现这一点吗

创建文件夹和创建文件的部分不是什么大问题,因此:

-如何为我用应用程序拍摄的照片设置保存路径?

多谢各位

编辑:

好的,我找到了一些代码,但它不起作用(即使我给了SD写权限):


最后,我发现了如何将图片保存到我们想要的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);
        }   
就这样


记得在SD卡上写权限。请注意,如果你正在使用这个方法,请考虑阅读:这将保存图片在IMASSHEMAX文件夹中…如果你有whatsapp,然后通过摄像头上传个人资料图片,它将上传你捕获的图像,但它不会将该图像存储在SD卡上,我们该怎么做?@Jayesh你可以在使用后删除“ImagesFolder”目录中保存的照片。

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);
        }