直接在内部存储中捕获图像

Posted

技术标签:

【中文标题】直接在内部存储中捕获图像【英文标题】:Capture images directly in internal storage 【发布时间】:2014-09-22 02:12:10 【问题描述】:

是否可以通过在 Intent 中传递内部存储的 uri 在 android 中通过相机捕获图像?如果是怎么办?我尝试了以下方式,但它给出了 JHEAD 无法读取错误。

File mediaStorageDir = getFilesDir();
File newFile =  new File(mediaStorageDir,IMAGE_DIRECTORY_NAME);
Uri newUri = Uri.fromFile(newFile);

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, newUri);

startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);

【问题讨论】:

【参考方案1】:

这是因为小错误。您传递的是目录而不是文件名。

试试这个方法希望对你有帮助

File mediaStorageDir = getFilesDir();
        File newFile =  new File(mediaStorageDir,new Date().getTime() + ".png");
        Uri newUri = Uri.fromFile(newFile);

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, newUri);

        startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);

【讨论】:

以上是关于直接在内部存储中捕获图像的主要内容,如果未能解决你的问题,请参考以下文章

在内部存储最佳实践中保存大量图像

保存在内部存储中捕获的​​图片?

在内部存储中保存/读取位图不起作用

捕获图像而不将其存储到内部/外部存储

从统一android的内部存储无缝加载图像?

Phonegap 下载文件并保存在内部存储中