从Uri转换位图返回null

时间:2015-05-13 05:36:43

标签: android image google-drive-api

在我的Android应用程序中,我使用Google驱动器来选择图像和文件,对于文件,我的代码在大多数情况下都能正常运行。不幸的是,在某些情况下,图像导入不起作用,图像位图返回空值,下面是我用来将内容URI转换为输入流和位图的代码。

Bitmap bitmap = null;
InputStream input = null;
try {
    input = getActivity()
        .getContentResolver()
        .openInputStream(
            Uri.parse("content://com.google.android.apps.docs.storage/document/acc%3D2%3Bdoc%3D83"));

    Log.Logger()
        .finest("Profileimagefile Fragment Drive called input" + input);

    bitmap = BitmapFactory
        .decodeStream(input);
} catch (FileNotFoundException e) {

    e.printStackTrace();
}

我已经提到过不起作用的URI,请帮我弄清楚问题。

1 个答案:

答案 0 :(得分:2)

尝试这样做以获取位图:

Uri sArtworkUri = Uri
    .parse("content://com.google.android.apps.docs.storage/document/acc%3D2%3Bdoc%3D83");
Uri uris = ContentUris.withAppendedId(sArtworkUri,
    Long.parseLong(fileUri));

ContentResolver res = getContentResolver();
InputStream in = null;
try { in = res.openInputStream(uris);
} catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Bitmap artwork = BitmapFactory.decodeStream( in );

使用这件艺术品......