1

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

谢谢

4

4 回答 4

2

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

因此,最好使用延迟加载从 Web 服务器下载图像。因为,通常用户不会向下滚动到 100 多个项目。因此,要在 99% 的时间内显示 <100 张图像,将所有 1000 张图像都放在应用程序 res 文件夹中是没有用的。

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

ListView 中图像的延迟加载

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

于 2013-01-10T05:32:02.427 回答
0

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

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

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

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

于 2013-01-10T05:31:02.327 回答
0

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

于 2013-01-10T05:35:05.627 回答
0

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

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

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);

就是这样。欲了解更多信息,请访问此处,如果您对毕加索有疑问,请查看此链接

于 2016-03-30T11:45:47.593 回答