【问题标题】:Picasso showing error while loading images(Album Cover Pic) from MediaStorePicasso 在从 MediaStore 加载图像(专辑封面图片)时显示错误
【发布时间】:2016-03-12 05:17:49
【问题描述】:

我正在尝试使用 Picasso 代码在回收站视图中加载图像

Picasso.with(context).load(songs.CoverArtAlbumPath.get(position)).into(holder.primaryImageView, new Callback() {
            @Override
            public void onSuccess() {
                Log.v("abc","suc");
            }

            @Override
            public void onError() {
                Log.v("abc","err");
            }
        });

它总是以 onError() 方法结束。我尝试使用 BitmapFactory.decodeFile 和其他方法使用传统方式加载图像,然后它工作正常。

songs.CoverArtAlbumPath.get(position) 包含字符串,如 "/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1456505346363"

我还尝试通过更改 Picasso 代码中的 .load() 参数来从可绘制文件夹中加载图像,然后它就被加载了。这意味着我在这里使用的上下文和 ImageView 没有错误。

我在 .load() 方法中传递的字符串是来自 MediaStore 的专辑封面艺术的字符串路径。

这里使用的ImageView就是下面xml代码中的View <ImageView android:gravity="left" android:id="@+id/grid_image" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ImageView>

请帮忙告诉我哪里出了问题,我应该怎么做才能让它工作。

提前致谢。

【问题讨论】:

    标签: android cursor picasso mediastore


    【解决方案1】:

    你可以试试这个:

     for showing image with storage path:
    
          String path ="/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/145650‌​5346363.png";
    
          Picasso.with(mContext).load("file://" + path)
          //.transform(new util.CircleTransform())// optional
          //.placeholder(R.drawable.default1) // optional
          .error(R.drawable.default1)   // optional
          .into(holder.primaryImageView);
    
     for showing image from url:
    
        String url ="http://www.domain_name.com/image.png";
        Picasso.with(mContext)
                .load(url)
                //.placeholder(R.drawable.default1) // optional
                .error(R.drawable.default1)   // optional
                //.transform(new CircleTransform())// optional
                .into(holder.primaryImageView);
    

    【讨论】:

    • 我可以从 drawable 文件夹中加载它,即使是 R.drawable.Image 但问题是当 .load() 参数是字符串时。
    • 你确定路径。网址在域名前有“http://”..请检查我的更新。
    • 字符串是“/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/1456505346363”这样的
    • 好的,那么,你可以使用.. Picasso.with(mContext).load("file://" + path) //.transform(new util.CircleTransform())// 可选//.placeholder(R.drawable.default1) // 可选 .error(R.drawable.default1) // 可选 .into(holder.primaryImageView);
    • 非常感谢!!!!!!!那“文件://”做到了:D谢谢。在你的答案中编辑它,以便我可以接受它:)
    【解决方案2】:

    你做错了试试这个

    String path ="/storage/emulated/0/Android/data/com.android.providers.media/albumthumbs/145650‌​5346363.png";
    
    Picasso.with(context).load(new File(path)).into(holder.primaryImageView);
    

    欲了解更多信息,请转到http://square.github.io/picasso/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      相关资源
      最近更新 更多