java – Last.fm不会返回艺术家图片
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Last.fm不会返回艺术家图片,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2343字,纯文字阅读大概需要4分钟。
内容图文
![java – Last.fm不会返回艺术家图片](/upload/InfoBanner/zyjiaocheng/731/7c4bf1633566429d983bab2e87b316a5.jpg)
我正在尝试从Last.fm获取并应用艺术家图像到ImageView,但没有返回任何图像.我不确定我在这里做错了什么.
private void setLastFmArtistImage() {
try {
String imageurl = "http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist="
+ URLEncoder.encode("Andrew Bird")
+ "&api_key="
+ APIKEY
+ "&limit=" + 1 + "&page=" + 1;
InputStream in = null;
Log.i("URL", imageurl);
URL url = new URL(imageurl);
URLConnection urlConn = url.openConnection();
HttpURLConnection httpConn = (HttpURLConnection) urlConn;
httpConn.connect();
in = httpConn.getInputStream();
Bitmap bmpimg = BitmapFactory.decodeStream(in);
mArtistBackground.setImageBitmap(bmpimg);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
解决方法:
您尝试使用的API会返回XML,而不是图像.您需要解析响应并从响应中选择适当的图像URL.
API documentation是非常彻底的,查看每个喜欢的艺术家Benny Hill的样本响应将为您提供足够的方向来找到合适的图像来显示.
编辑:有关API的示例,您可以查看官方Last.fm client – 请注意,这是GPL3授权的东西,除非您想要发布您的来源,否则您不应该使用副本&糊.
编辑(再次):对于未受GPL3污染的示例,请尝试以下操作:
(该示例使用JSoup,友好的XML解析器)
public List<LastFmImage> getLastFmImages(String artistName, int limit, int page) throws IOException {
String apiUrl = "http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist="
+ URLEncoder.encode(artistName)
+ "&api_key="
+ APIKEY
+ "&limit=" + limit + "&page=" + page;
Document doc = Jsoup.connect(apiUrl).timeout(20000).get();
Elements images = doc.select("images");
ArrayList<LastFmImage> result = new ArrayList<LastFmImage>();
final int nbrOfImages = images.size();
for (int i = 0; i < nbrOfImages; i++) {
Element image = images.get(i);
String title = image.select("title").first().text();
Elements sizes = image.select("sizes").select("size");
final int nbrOfSizes = sizes.size();
for (int j = 0; j < nbrOfSizes; j++) {
Element size = sizes.get(i);
result.add(new LastFmImage(title, size.text(),
size.attr("name"),
Integer.parseInt(size.attr("width")),
Integer.parseInt(size.attr("height"))));
}
}
return result;
}
和LastFmImage类:
public class LastFmImage {
public String mTitle;
public String mUrl;
public String mName;
public int mWidth;
public int mHeight;
public LastFmImage(String title, String url, String name, int width, int height) {
mTitle = title;
mUrl = url;
mName = name;
mWidth = width;
mHeight = height;
}
}
内容总结
以上是互联网集市为您收集整理的java – Last.fm不会返回艺术家图片全部内容,希望文章能够帮你解决java – Last.fm不会返回艺术家图片所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。