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)
您获得的 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路径,但最好不要这样做,因为毕加索支持从文件加载。