【问题标题】:android camera not saving picture安卓相机不保存图片
【发布时间】:2014-09-06 19:44:30
【问题描述】:

以下是我拍照的代码

            File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            String name = imageFileName;
            File file = new File(path, name);
            Toast.makeText(getBaseContext(), file.toString(), Toast.LENGTH_LONG).show();
            outputFileUri = Uri.fromFile(file);
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
            startActivityForResult(cameraIntent, CAMERA_REQUEST); 


}

static final int REQUEST_IMAGE_CAPTURE = 1;
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    this.imageView = (ImageView)this.findViewById(R.id.mImageView);
    if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {  
        Bitmap photo = (Bitmap) data.getExtras().get("data"); 
        imageView.setImageBitmap(photo);
    }  

    }

这很好拍照片并将缩略图放在图像视图中

问题是当它应该将图片保存在文件名为“Imagefilename”的图片文件夹中时,它会将图片保存在 SD 卡上的 DCIM 卡中

我放入的 toast 将完整路径报告为

storage/emulated/0/Pictures/filename.jpg 但图片没有保存在那里

我已在清单中设置读写权限

我出错的任何想法

标记

【问题讨论】:

    标签: android camera storage


    【解决方案1】:

    你需要这个:

    cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT,outputFileUri );
    

    在调用 startActivityForResult.. 之前复制上面的代码:

            File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
            String name = imageFileName;
            File file = new File(path, name);
            Toast.makeText(getBaseContext(), file.toString(), Toast.LENGTH_LONG).show();
            outputFileUri = Uri.fromFile(file);
            Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
    
            cameraIntent.putExtra( MediaStore.EXTRA_OUTPUT,outputFileUri );// add this
    
            startActivityForResult(cameraIntent, CAMERA_REQUEST); 
    

    【讨论】:

    • 和 Intent 不一样 cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);在开始活动之前我已经有了结果?
    • 我试着用它代替它说 cameraintent 无法解决
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-26
    相关资源
    最近更新 更多