从服务器获取图像URL时无法在图像视图中加载默认图像

时间:2016-02-05 08:00:51

标签: android android-imageview picasso

我正在使用GET方法从服务器接收一些JSON数据。下面给出了一个jsonObject:

{
    "ID": "576",
    "id": "c1b6d2d0d946504d09a471e05d3907c9",
    "name": "Harminder Singh",
    "last_logged": "1429535277",
    "url": "common/marvel/photos/2015/04/fd64s_161_bd4c9ab730f5513206b999ec0d90d1fb",
    "extension": "jpg",
    "current_status": "icon-offline prople-offline",
    "room_id": "a7aeed74714116f3b292a982238f83d2",
    "current_user": false
}

我在这里获取图片网址。使用api端点网址和扩展程序我得到绝对网址。

 String absoluteURL = api + "/" + url + "." + extension;

我正在使用这个absoluteURL使用Picasso库在imageview中加载图像。现在我的问题是,在某些网址存在图像,而某些不存在.SO我将一些图像视图视为空白。如何验证来自收到图像存在与否的URL?

2 个答案:

答案 0 :(得分:2)

你真的不能。但您可以使用占位符,甚至是加载图像。您可能会发现this blog post有用

答案 1 :(得分:0)

没有直接的方法可以做到这一点,但你可以做的是,覆盖onimageLoadFailed()方法。在加载失败时,你可以做任何你想做的事。

Picasso.Builder builder = new Picasso.Builder(this);
        builder.listener(new Picasso.Listener(){
            @Override
            public void onImageLoadFailed(Picasso picasso, Uri uri, Exception exception){
                // your stuff
            }
        });
        builder.build().load(URL).into(imageView);

或者,如果你有一些默认的drawable,每次获取时都会出现错误,你可以添加

.error(R.mipmap.some_drawable)