如何在屏幕视图上处理imageview从URL下载图像

时间:2016-02-23 19:07:01

标签: android performance listview android-asynctask imageview

我正在开发一个Android应用程序,它可以从远程网址动态下载图像。我有一个Web服务,可以为我的应用程序提取图像网址列表。

我使用for循环创建要在设备屏幕上显示的imageview

这是代码示例

for (int i = 0; i < imageUrls.length; i++ ) {
    ImageView imgv  = new ImageView(context);
    setImage(imgv, imageUrls[i]); // use AsyncTask

    linearLayoutVertical.addView(imgv); // add to its parent 
} 

我想在设置为imageview时立即阻止所有图片下载。换句话说,让它像listview一样工作。仅在屏幕视图中显示图像。但我的问题是它下载所有图像。

enter image description here

我有理由不使用listview,非常感谢。

1 个答案:

答案 0 :(得分:0)

请使用Volley库中的NetworkImageView

您可以使用ListViewRecyclerView来显示您的数据,其中每个单元格/项目都有NetworkImageViewNetworkImageView非常适合您只想在滚动时加载图片的要求,它被称为延迟加载。要使用NetworkImageView,您必须使用ImageLoader。请查看thisthis项目以供参考。

NetworkImageView有一个漂亮的方法setImageUrl可以为你节省很多精力。

articlePhoto.setImageUrl(image_url, imageLoader);

BTW,无论使用NetworkImageView ListView还是任何滚动视图,都可以使用RecyclerView