【问题标题】:How to handle imageview to download image from url when on screen view在屏幕视图中如何处理 imageview 以从 url 下载图像
【发布时间】:2016-02-23 19:07:00
【问题描述】:

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

我使用 for 循环创建图像视图以显示在设备屏幕上

这里是代码示例

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,非常感谢。

【问题讨论】:

  • 你不使用ListView的原因是什么?如果你不使用它,你基本上必须自己制作一个自定义ListView
  • 使用 picasso 或 glide 图像加载库可以轻松完成。 Asynctask 相对较慢。看看这些库,我同意 Eric 关于 ListView 或 RecyclerView 的使用。

标签: android performance listview android-asynctask imageview


【解决方案1】:

请使用Volley库中的NetworkImageView

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

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

articlePhoto.setImageUrl(image_url, imageLoader);

顺便说一句,无论使用 ListView RecyclerView 或任何滚动视图,都可以使用 NetworkImageView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2022-07-26
    • 2020-12-13
    • 2020-07-25
    • 2011-06-07
    相关资源
    最近更新 更多