我为我的播客应用程序写了一个rss解析器。如果我使用不同的播客解析rss,并在ListView中显示结果,我的解析器需要大约1-2秒来解析整个提要。
但是,如果我想在我的ListView中包含每个播客的缩略图,我需要首先下载缩略图并使用BitmapFactory创建一个位图,然后我可以将该位图存储到ImageView中。
不幸的是,这会将我的执行时间从1-2秒延长到8-10秒。
这就是我抓取缩略图的方法。有没有更好(更快)的方法来实现我想要做的事情,如果有,我该如何实现它?
提前谢谢。
...
else if (name.equalsIgnoreCase(THUMBNAIL)) {
HttpGet get = new HttpGet(parser.nextText());
if (get != null && get.getURI().toString().length()>1) {
HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
HttpEntity entity = response.getEntity();
if (entity != null) {
byte[] bb = EntityUtils.toByteArray(entity);
currentItem.setBitmap(BitmapFactory.decodeByteArray(bb, 0, bb.length));
}
}
}发布于 2011-08-27 23:05:29
您应该使用单独的线程来下载位图。这就是所谓的延迟加载。请参阅我的教程:http://negativeprobability.blogspot.com/2011/08/lazy-loading-of-images-in-listview.html
或者这个问题的答案:Lazy load of images in ListView
https://stackoverflow.com/questions/7215268
复制相似问题