【问题标题】:Universal Image Loader Usage通用图像加载器用法
【发布时间】:2015-05-28 07:48:52
【问题描述】:

我的应用程序通过 json/url 获取图像并沿着一些 TextView 填充 ListView。在每个项目上单击一个新的 details_activity 并打开一个 ImageView 以显示该行中的图像。然后我在一个全屏大小的新活动中从 ImageView 打开这个图像。

我的问题是:我需要在上面提到的所有活动中使用下面的通用图像加载器代码吗?

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
    .cacheInMemory(true).cacheInMemory(true)
    .imageScaleType(ImageScaleType.EXACTLY)
    .displayer(new FadeInBitmapDisplayer(300)).build();

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
    getApplicationContext())
    .defaultDisplayImageOptions(defaultOptions)
    .memoryCache(new WeakMemoryCache())
    .diskCacheSize(52428800).build();

ImageLoader.getInstance().init(config);

发生的情况是,有时我在显示全屏图像时出现内存不足错误。但是,如果我返回 details_activity 然后再次单击图像,即使我在所有使用 imageloader 的活动上使用上面的代码,它也会在 fullscreen_activity 中打开且没有错误。

【问题讨论】:

  • 您可以使用通用图像加载器来填充您的列表视图。之后,只需通过意图将图像 url 传递给下一个活动并将其设置为 imageview。!
  • @DhinakaranThennarasu:我应该在 CustomListAdapter 类还是 ListView 类上编写代码?
  • @Skynet : 只有 defaultOptions 或所有代码(ImageLoaderConfiguration 配置...)?
  • 很抱歉配置需要加载一次,每个类的默认选项。
  • 告诉我你的想法:我按照你告诉我的方式做了。它在带有 android 4.4 的 genymotion 中完美运行。在具有 android 4.0 的 android 默认模拟器中,有时会发生问题。昨天我用 android L (Api 21) 创建了一个 android 默认模拟器,它看起来工作正常。这是模拟器还是 API 问题@Skynet?

标签: android


【解决方案1】:

只需使用Glide 即可避免额外的代码和内存问题。

示例代码(只有 1 行!):

Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 2013-09-16
    相关资源
    最近更新 更多