Android 无法使用 Picasso 从 URI 加载图像

Rgf*_*Iff 6 android picasso

Android 应用程序允许用户从手机图库中选择照片,我将其 URI 保存到领域。然后,我检索此信息并使用 Picasso 将其加载到图像视图中。由于某种原因,图像未加载。

URI 类似于:

content://com.android.providers.media.documents/document/image%3A333180
Run Code Online (Sandbox Code Playgroud)

我将其保存到领域mCategory.icon = imageURI.toString(),然后当我加载它时:

Picasso.with(getContext())
                .load(Uri.parse(mCategory.icon)) // mCategory.icon is a string 
                .resize(200, 200)
                .error(R.drawable.mountain) // default image to load
                .into(viewHolder.categoryIcon);
Run Code Online (Sandbox Code Playgroud)

Kei*_*ati 5

您获得的 URI 是一个ContentProvider向 Picasso 显示它的 URI,您尝试执行此操作:

    File file = new File(Uri.parse(mCategory.icon));
    Picasso.with(getContext())
            .load(file)  
            .resize(200, 200)
            .error(R.drawable.mountain) 
            .into(viewHolder.categoryIcon);
Run Code Online (Sandbox Code Playgroud)

PS:虽然您可以将ContentProveder路径转换为Absolute路径,但最好不要这样做,因为毕加索支持从文件加载。