繁体   English   中英

如何使用API​​和Glide图像查看信息何时丢失

[英]How to see when information is lost using API and Glide for images

我正在为学校设置NewYorkTimes,比如新闻应用程序(使用他们的API)。 我有每个类别的3个标签(热门故事,最受欢迎,艺术)每个标签都是依赖于MainActivity的片段,我们可以使用ViewPager在片段之间切换。 每个片段都包含一个RecyclerView。 (对于文章列表)我正在使用Retrofit和Glide。 这是我的github回购,如果你想: https//github.com/matteovaccari/MyNews我已经成功实现了文章API,但我一直遇到麻烦使用Glide这里是我的问题:并非所有图像都显示(几乎8张图片/ 10是显示),在MostPopular标签中,它是0/10图像

我认为我的问题来自我的方法SetImage:

 public void setArticleImage(Result article, RequestManager glide) {
    //If article url isn't null
    if (article.getMultimedia() != null) {
        if (article.getMultimedia().size() > 0) {
            // get image string
            String urlMultimedia = article.getMultimedia().get(0).getUrl();
            // clean the URL
            if (urlMultimedia.startsWith("images")) {
                urlMultimedia = "https://www.nytimes.com/" + urlMultimedia;
            }
            glide.load(urlMultimedia).apply(new RequestOptions().fallback(R.drawable.ic_launcher_background)).into(imageView);
        } else {
            // default image
            getImageDefault(glide);
        }
    } else {

        if (article.getMedia() == null) {
            //image default
            getImageDefault(glide);
        } else {
            // get Url
            String mUrlMedia = article.getMedia().get(0).getMediaMetadata().get(0).getUrl();
            // glide the string
            glide.load(mUrlMedia).apply(new RequestOptions().fallback(R.drawable.ic_launcher_background)).into(imageView);
        }
    }
}

在我的updateUI方法中调用此方法(使用setTitle,setSection等)

我不明白如何加载一些图像,有些图像不能...对于没有加载任何内容的MostPopular选项卡也是如此

问题在于您的API响应 您的某些图像未加载,因为您的条件if (article.getMultimedia() != null)在某些情况下失败。 在这些情况下,API响应中根本不存在multimedia ,因此它没有任何imageUrl ,因此您的默认占位符图像正在加载。

public void setArticleImage(Result article, RequestManager glide) {
    //This condition is FAILING for you because article doesn't have multimedia object inside it.
    if (article.getMultimedia() != null) {
        if (article.getMultimedia().size() > 0) {
            // get image string
            String urlMultimedia = article.getMultimedia().get(0).getUrl();
            // clean the URL
            if (urlMultimedia.startsWith("images")) {
                urlMultimedia = "https://www.nytimes.com/" + urlMultimedia;
            }
            glide.load(urlMultimedia).apply(new RequestOptions().fallback(R.drawable.ic_launcher_background)).into(imageView);
        } else {
            // default image
            getImageDefault(glide);
        }
    } else {

        if (article.getMedia() == null) {
            //image default
            getImageDefault(glide);
        } else {
            // get Url
            String mUrlMedia = article.getMedia().get(0).getMediaMetadata().get(0).getUrl();
            // glide the string
            glide.load(mUrlMedia).apply(new RequestOptions().fallback(R.drawable.ic_launcher_background)).into(imageView);
        }
    }
}

您应该要求开发人员修复API响应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM