2017-02-23 77 views
0

我需要的图像设置为我的图像视图为什么毕加索没有下载图像?

为此,我用毕加索库

这里是方法,我是如何做到这

File image = new File("file:" + path); 
    Picasso.with(context) 
      .load(image) 
      .placeholder(R.drawable.progress_animation) 
      .error(R.drawable.image_error_404) 
      .into(iv); 

,也是我尝试同样没有前缀file:像这里

File image = new File(path); 
    Picasso.with(context) 
      .load(image) 
      .placeholder(R.drawable.progress_animation) 
      .error(R.drawable.image_error_404) 
      .into(iv); 

但所有的时间我像从.error()

没有与file:前缀的路径 - “文件:/storage/emulated/0/Android/data/com.fittingroom.newtimezone/files/default/AvatarPackage/DEFAULT_MY_AVATAR/pose1.jpeg”

有是路径不用其他file:前缀 - “/storage/emulated/0/Android/data/com.fittingroom.newtimezone/files/default/AvatarPackage/DEFAULT_MY_AVATAR/pose1.jpeg”

反正我没有结果

为什么毕加索不想设置我的形象

我做错了什么?

+1

是否'图像。 exists()'return'true'或'false'?您是否尝试添加[全局侦听器](http://stackoverflow.com/a/31608813/115145)以获取触发错误响应的异常? – CommonsWare

+0

@CommonsWare好的,谢谢我现在我明白了什么原因 - OOM,图像太大......但奇怪的是,为什么毕加索没有处理这种情况...因为例如Glade没有遇到这样的错误。 ..好吧,这是否意味着我需要调整图像大小或者我可以添加一些参数? –

+0

AFAIK,毕加索应根据目标'ImageView'的大小来调整大小。还有一些手动选项(例如'.resize()')。 – CommonsWare

回答

0

感谢@CommonsWare我解决我的问题,这样的方式

.fit() 
.centerInside() 

这里是我的执行

File image = new File(path); 

    Picasso picasso = new Picasso.Builder(context) 
      .listener(new Picasso.Listener() { 
     @Override public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception) { 
      Logger.logError("ERROR Download image: ", exception, context); 
     } 
    }).build(); 

    picasso 
      .load(image) 
      .fit() 
      .centerInside() 
      .placeholder(R.drawable.progress_animation) 
      .error(R.drawable.image_error_404) 
      .into(iv, new Callback() { 
       @Override public void onSuccess() { 
        Logger.logGeneral("image downloaded"); 
       } 

       @Override public void onError() { 
        Logger.logGeneral("onError image downloaded"); 
       } 
      }); 
+0

我想知道你使用的是什么“记录器”?链接将不胜感激。 – AnixPasBesoin

+0

@AnixPasBesoin它只是我自己的实现,没有什么特别的 –

0

你的路径前缀是不正确的:使用file:///代替file:

+0

不,它不起作用 –