[英]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.