Android Picasso会在加载到imageView

时间:2018-07-04 04:03:02

标签: android android-imageview picasso

我目前正在使用具有数据绑定工具的RecyclerView,以从通过API获取的url列表(/images/slider/my/myImage.jpg)中加载图片。

@BindingAdapter("imageUrl")
public static void loadImage(ImageView imageView, String imageUrl){
    Picasso.with(imageView.getContext()).load(CommUtils.WEBSITE_LINK + imageUrl).into(imageView);
}

当前,我的ListAdapter中有上面的代码。当网址位于正确的链接中或服务器中存在时,能够很好地加载图像的代码,否则它将为空白。因此,我想创建一个案例,以便在显示之前检查图像是否存在/是否正确。

我想要实现的是:

if(Image Link exist){
//Load Image, Picasso.with.................
} else {
//Use Dummy Photo, Picasso.with..................
}

[编辑]现在,我知道如果路径不存在,我可以使用error()函数创建另一个负载。如果我的API返回两种可能不同的格式或“ url”,该怎么办?有路径(/images/slider/my/myImage.jpg)或无路径(myImage.jpg) 因此,在我的代码中,我想做类似的事情

if(websitelink + ImageUrl){ load image }
else(websitelink + path + ImageUrl) { load iamge} //Should this code run under error() from the first case??

我可以先对ImageUrl执行检查,而不是尝试直接加载图像并且仅在出现错误时更改

2 个答案:

答案 0 :(得分:4)

毕加索仍然支持占位符和错误图像:

Picasso.get()
    .load(url)
    .placeholder(R.drawable.user_placeholder)
    .error(R.drawable.user_placeholder_error)
    .into(imageView);

因此,如果您要归档的只是显示一些错误图像,则在加载不起作用时,这就是您所需要的。

答案 1 :(得分:1)

您可以使用delete table1,table1_details from table1 a join table1_details b on table1.id=table1_details.t1_id where a.id=9 来收听回复。

com.squareup.picasso.Callback