Sha*_*n.Y 3 android android-imageview picasso
我目前正在使用具有数据绑定工具的RecyclerView,以从从API获取的url列表(/images/slider/my/myImage.jpg)中加载Image。
@BindingAdapter("imageUrl")
public static void loadImage(ImageView imageView, String imageUrl){
Picasso.with(imageView.getContext()).load(CommUtils.WEBSITE_LINK + imageUrl).into(imageView);
}
Run Code Online (Sandbox Code Playgroud)
目前我在ListAdapter中有上面的代码。当网址位于正确的链接中或服务器中存在时,能够很好地加载图像的代码,否则它将为空白。因此,我想创建一个案例,以在显示之前检查图像是否存在/是否正确。
我要实现的是:
if(Image Link exist){
//Load Image, Picasso.with.................
} else {
//Use Dummy Photo, Picasso.with..................
}
Run Code Online (Sandbox Code Playgroud)
[编辑]因此,现在我知道,如果路径不存在,我可以使用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??
Run Code Online (Sandbox Code Playgroud)
我可以先对ImageUrl执行检查,而不是尝试直接加载图像并且仅在出现错误时进行更改吗?
毕加索无论如何都支持占位符和错误图像:
Picasso.get()
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
Run Code Online (Sandbox Code Playgroud)
因此,如果您要归档的只是显示一些错误图像,则在加载不起作用时,这就是您所需要的。
您可以使用com.squareup.picasso.Callback来监听响应:
Picasso.with(getContext())
.load(url)
.placeholder(R.drawable.image_name) // Your dummy image...
.into(imageView, new com.squareup.picasso.Callback() {
@Override
public void onSuccess() {
// Image is loaded successfully...
}
@Override
public void onError() {
// Unable to load image, may be due to incorrect URL, no network...
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |