android – 如何获取刚从相机捕获的图像路径

下面是我的代码但是没有给我onActivity结果中的图像路径
Uri selectedImageUri = data.getData();
                selectedImagePath = getPath(selectedImageUri);
                Log.w("jay","Camera Image Path :" + selectedImagePath);

                Toast.makeText(MiscansOther_pannel.this,selectedImagePath,Toast.LENGTH_LONG).show();

解决方法

这对我有用……

码:

Uri selectedImageUri = data.getData();
selectedImagePath = getRealPathFromURI(selectedImageUri);

方法:getRealPathFromURI()

//----------------------------------------
    /**
     * This method is used to get real path of file from from uri
     * 
     * @param contentUri
     * @return String
     */
    //----------------------------------------
    public String getRealPathFromURI(Uri contentUri)
    {
        try
        {
            String[] proj = {MediaStore.Images.Media.DATA};
            Cursor cursor = managedQuery(contentUri,proj,null,null);
            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.movetoFirst();
            return cursor.getString(column_index);
        }
        catch (Exception e)
        {
            return contentUri.getPath();
        }
    }

编辑:

正如我在一些设备中注意到捕获的图像后,onActivityResult()中的数据为空,

因此,替代方法是将特定图像文件名作为参数传递给您的Intent,以捕获图像作为putExtra参数.

然后还将此图像Uri插入Media Store,现在使用此Uri进一步使用,

您可以通过File.exist()检查图像是否被捕获,

代码看起来像,

ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE,"Image File name");
Uri mCapturedImageURI = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,values);
Intent intentPicture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intentPicture.putExtra(MediaStore.EXTRA_OUTPUT,mCapturedImageURI);
startActivityForResult(intentPicture,ACTION_TAKE_PICTURE);

现在,您可以使用相同的方法从Uri获取文件路径,

在这种情况下,它将在onActivityResult()中,

selectedImagePath = getRealPathFromURI(mCapturedImageURI); // don't use data.getData() as it return null in some device instead  use mCapturedImageUR uri variable statically in your code,

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...