【问题标题】:Android Performance: load images for listViewAndroid 性能:为 listView 加载图像
【发布时间】:2016-06-05 10:34:05
【问题描述】:

我将开发一个显示ListView 的应用程序,其中每一行都有一个单独的图像(如联系人列表的个人图片)。看来我有两个选择:

1- 将所有图像存储在资产文件夹中并加载图像using setImageDrawable() 命令。

2- 将所有图像存储在 Drawable 文件夹中并使用 setImageResource(R.drawable.xxx) 加载主题

所以我的问题是它们的性能不同吗?以及如何加快 listView 的渲染速度,以使图像以可接受的速度显示。

【问题讨论】:

  • 如果你需要加载大量图片,最好将图片存储在服务器上,然后从服务器加载图片并缓存它们以停止每次重新加载图片
  • @user5894647 感谢您的通知。我认为我应该为此目的使用 UnivrsalImageLoader 之类的库。
  • 是的,你也可以使用 picaso 或 glide 库,因为它们带有内置的图像缓存

标签: android listview imageview


【解决方案1】:

从 Drawable 或资产文件夹访问图像应该没有太大的性能差异。你也可以看到答案->Android: Accessing images from assets/drawable folders

但是,当您使用 ListView 时,您正在重新创建视图。因此,无论您将图像存储在何处,所有图像都不会有太大的不同。

【讨论】:

  • 那么,如何加快图片加载速度?
  • 把图片尺寸改小一点,或者使用NDK渲染。我想你已经知道 Java 不适合图像渲染。
【解决方案2】:

差别不大。只是为了改变编码模式。

资产/

编译成以下可绘制资源的位图文件(.png、.9.png、.jpg、.gif)或 XML 文件。

可绘制/

以原始形式保存的任意文件。要使用原始 InputStream 打开这些资源,请使用资源 ID(即 R.raw.filename)调用 Resources.openRawResource()。

https://developer.android.com/guide/topics/resources/providing-resources.html#ResourceTypes

【讨论】:

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