相关疑难解决方法(0)

从android中的文件路径获取内容uri

我知道图像的绝对路径(比如说/sdcard/cats.jpg).这个文件的内容是否有任何方法?

实际上在我的代码中我下载了一个图像并将其保存在特定位置.为了在ImageView中设置图像,我使用路径打开文件,获取字节并创建位图,然后在ImageView中设置位图.这是一个非常缓慢的过程,相反,如果我可以获得内容uri,那么我可以很容易地使用该方法 ImageView.setImageUri(uri)

android image

252
推荐指数
7
解决办法
34万
查看次数

将内容:// URI转换为Android 4.4中的实际路径

我尝试了一个解决方案(见下文)工作正常,除了在Android 4.4中调用startActivityForResult()一个名为"Open from"的活动,其中包含"Recent","Images","Downloads"以及几个可供选择的应用程序.当我选择"图像"并尝试解析返回的内容URI(使用下面的代码)时,调用cursor.getString()返回null.如果我使用Gallery应用程序选择完全相同的文件,则cursor.getString()返回文件路径.我只在API级别16和19中对此进行了测试.一切都按照16中的预期运行.至于19,我必须选择Gallery或其他应用程序,否则它不起作用.

private String getRealPathFromURI(Context context, Uri contentUri) {
    Cursor cursor = null;
    try { 
        String[] proj = { MediaStore.Images.Media.DATA };
        cursor = context.getContentResolver().query(contentUri,  proj, null, null, null);
        int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
        cursor.moveToFirst();
        String path = cursor.getString(column_index);

        return path;
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

android filepath android-contentresolver

62
推荐指数
4
解决办法
7万
查看次数