(android)拍照而不保存

时间:2017-01-24 02:24:22

标签: android

我使用下面的代码在我的Android应用程序中调用相机。

使用代码,我可以拍照并获得图片的绝对路径。 但问题是绝对路径始终指向内部存储。 也就是说,手机自动保存了我拍的照片,我不得不逐一删除它们。 我只想要绝对路径,以便我可以将其转换为File对象而不保存在我的存储或SD卡中。 也许,我可以暂时将它保存在我分配的内存中。

有没有办法做到这一点?

   Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, PICK_FROM_CAMERA);


public void onActivityResult(int requestCode, int resultCode, Intent data){
    super.onActivityResult(requestCode, resultCode, data);

    if(resultCode != RESULT_OK)
        return;

    if(requestCode == PICK_FROM_CAMERA){

        imageUri = data.getData();
        Log.d("메시지", "uri = "+imageUri);

        Cursor c = this.getContentResolver().query(imageUri, null, null, null, null);
        c.moveToNext();
        absolutePath = c.getString(c.getColumnIndex(MediaStore.MediaColumns.DATA));

        Glide.with(this).load(imageUri).into(image);

1 个答案:

答案 0 :(得分:0)

您可以将thumbnail图片无内存存入内存或SD卡

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
         Bundle extras = data.getExtras();
         Bitmap imageBitmap = (Bitmap) extras.get("data");
         mImageView.setImageBitmap(imageBitmap);
    }
}

对于完整尺寸的图像,您需要定义共享文件(例如:SD卡上的缓存文件)并将其设置为MediaStore.EXTRA_OUTPUT

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// camera app will save photo into sharedFileURI path
intent.putExtra(MediaStore.EXTRA_OUTPUT, sharedFileURI);
startActivityForResult(intent, PICK_FROM_CAMERA);

有关详细信息,请参阅官方文档的Save the Full-size Photo article