我正在制作一个音乐播放器,到目前为止我所做的是我使用元数据文件在其列表视图中创建了一个列表视图中的歌曲列表。 现在当我滚动我的列表它滞后,这可能是因为图像加载。 我提到Google Play音乐应用程序,他们所做的是他们在滚动时抓取专辑封面,所以滚动非常顺畅。 有什么办法来实现这种功能?仅当它们即将显示时在列表视图中加载图像
回答
你必须使用延迟加载的图像,所以图像将在后台下载。
public class DownloadImage extends AsyncTask<ImageView, Void, Bitmap> {
ImageView imageView = null;
@Override
protected Bitmap doInBackground(ImageView... imageViews) {
this.imageView = imageViews[0];
return download_Image((String) imageView.getTag());
}
@Override
protected void onPostExecute(Bitmap result) {
imageView.setImageBitmap(result);
}
private Bitmap download_Image(String url) {
try {
URL ulrn = new URL(url);
HttpURLConnection con = (HttpURLConnection) ulrn.openConnection();
InputStream iS = con.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(iS);
return bmp;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
}
请在您的适配器getview
imgThumbnail.setTag(<your image url>);
new DownloadImage().execute(imgThumbnail);
我不想从url获取图像。我想从他们那里得到他们。这是怎么回事?是imgThumbnail一个ImageView? –
这是异步任务,imgthumbnail是一个imageview。您可以修改异步任务以适应您的要求。如果你需要一个例子,给我一个样本uri –
final Uri sArtworkUri = Uri .parse(“content:// media/external/audio/albumart”); Uri uri = ContentUris.withAppendedId(sArtworkUri,currSong.getAlbumID()); 这是我的uri代码。我尝试修改异步任务,但它需要上下文,我不能通过,因为它会超过任何参数。 –
- 1. lazyload:仅当它包含图像加载时才显示div
- 2. ASP.NET MVC:从数据库中加载图像并在视图中显示它们
- 3. 在列表视图中加载图像
- 4. 在列表视图中加载图像
- 5. 在平铺视图显示图像,并重新排列它们
- 6. C# - 如何将文件夹中的图像添加到数组并将它们显示在列表视图中?
- 7. C# - 将图像加载到图像列表和列表视图
- 8. 在显示列表视图的同时下载图像
- 9. 只有当它们在WP7中可见时才加载图像列表框
- 10. 错误的图像加载时在列表视图中加载图像
- 11. 当WebView在Android中加载页面时显示“加载”图像
- 12. 点击列表项时,图像在列表视图中交换它们的行
- 13. 仅当在地图视图上选择图钉时才显示图像
- 14. 如何在加载大图像时显示加载图像?
- 15. 我试图显示在列表视图图像的列表,但
- 16. 使用通用图像加载器在列表视图中加载图像
- 17. 显示加载图像并隐藏它
- 18. 如何显示加载图像每当标签页加载时
- 19. wxPython的线程显示图像,因为它们加载
- 20. 无法在图像视图中显示图层列表
- 21. 在加载视图时加载图像视图
- 22. 仅当图像可见时才加载图像?
- 23. 仅当元素进入视口时才会加载图像
- 24. 从数据表在列表视图中显示图像
- 25. 在列表视图中添加图像
- 26. 通用图像加载器在Android中加载时显示不同的图像
- 27. 显示在列表视图
- 28. 显示加载图像,同时填充组合框列表
- 29. 将图像放在数组中并显示它们
- 30. 保存图像,然后将它们显示在QLabel中
在您的列表视图可以将您的图像异步加载到意见,这个类的调用。看到http://developer.android.com/training/displaying-bitmaps/load-bitmap.html它会有所帮助。 – Sayem