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

时间:2017-04-10 05:27:49

标签: android picasso

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

URI类似于:

content://com.android.providers.media.documents/document/image%3A333180

我使用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);

4 个答案:

答案 0 :(得分:4)

你得到的URI是一个ContentProvider URI,用来表示你尝试这样做的Picasso:

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

P.S:虽然你可以将你的ContentProveder路径转换为Absolute路径,但如果你没有,毕加索支持从文件中加载,那么它会更好..

答案 1 :(得分:1)

在picasso中使用setLoggingEnabled(true)检查日志是否有任何错误消息。

答案 2 :(得分:0)

提到的URI包含冒号的编码值:,即%3A。

重命名来源或尝试Glide或其他一些库来达到目的。

答案 3 :(得分:0)

这与新版本的Picasso 2.71828

完美配合
Picasso.get()
       .load(imageUri)
       .placeholder(R.drawable.placeholder)
       .fit()
       .centerCrop()
       .into(viewHolder.categoryIcon);