【问题标题】:ListView Image Loading AndroidListView 图像加载 Android
【发布时间】:2016-03-31 19:36:57
【问题描述】:

我正在尝试创建一个列表视图,其中每一行都有一个文本视图和一个图像视图。在图像视图中,我正在尝试使用自定义适配器加载缩略图。我的问题是,如果我有大约 1000 个缩略图,将图像保存在 res/drawable 文件夹中并直接从那里加载是一个好主意(因为图像非常小,大约 2-4kb)。还是从网页 url 下载它们并将它们加载到 listView 中是一个更好的选择。有人可以帮助我找出更明智的解决方案。后来我可能会使用超过 1000 个缩略图。

谢谢

【问题讨论】:

标签: android android-imageview image-loading


【解决方案1】:

如果您将所有 1000 张图像保存在 res 文件夹中,则应用程序大小将增加 2-4 Mb。

因此,最好使用延迟加载从 Web 服务器下载图像。因为,通常用户不会向下滚动到 100 多个项目。因此,要在 99% 的时间内显示

在此处查看投票最高的答案:

Lazy load of images in ListView

这就是我在我的应用程序中使用的。非常满意。

【讨论】:

  • @user370305,是的,Google play 最多允许 50mb,但用户呢?每个人都喜欢低内存应用,对吧?
  • 不,我的意思是当您可以选择以 5mb 和 9mb 大小交付它时。建议使用 5mb。就像我说的,大多数用户会看到不超过 100 张图片,因此 90% 的资源是无用的。此外,如此大量的图像通常会频繁增长(会添加新图像)
  • 你能给我参考一些与listView中延迟加载图像相关的教程吗?我发现的示例对我来说理解起来有点复杂,因为我在多线程类型的编程方面不是很有经验。提前致谢
【解决方案2】:

当然,您可以将所有图像保存在可绘制文件夹中。只要您以后不打算添加图像,这将是一种更快、更清洁的解决方案。

您可以节省数据费用、电池寿命和编码工作量 :)

我想说,1000 并不是一个很大的数字,因为您的图像真的那么小。但是,如果超出此范围,则可能会出现问题。

我也不认为你会一直需要所有 1000 或 2000 张图像,为每个用户。这样一来,您最好从某个地方下载相关图像,而不是将其与应用程序一起打包。

【讨论】:

  • 但是您是否认为如果我有超过 1000 个缩略图,我的应用程序的大小会太大。
  • 是的,它会很大。比您实际想要的更大。
【解决方案3】:

您应该下载拇指,这一点毫无疑问。如何优化代码是通过对 Listview 中的所有视图进行软缓存。

【讨论】:

    【解决方案4】:

    @Archie.bpgc 答案是完美的。 如果从 URL 异步加载图像会更好。如果您从服务器获取部分图像列表会更好。这意味着它第一次从服务器获取 20 个项目之后,它将从服务器获取接下来的 20 个项目。

    要从服务器异步加载图像,您可以使用 Picasso 小型库。 这里是gradle

    compile 'com.squareup.picasso:picasso:2.3.3'
    

    这是你的ImageView

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
    

    这是简单的java代码

    ImageView imageView = (ImageView) findViewById(R.id.imageView);
    
        Picasso.with(this)
                .load("YOUR_IMAGE_URL")
                .into(imageView);
    

    就是这样。欲了解更多信息,请访问here,如果您对毕加索有疑问,请查看this link

    【讨论】:

      猜你喜欢
      • 2011-10-04
      • 1970-01-01
      • 2016-01-26
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多