【问题标题】:Slow load of local images with Picasso?Picasso 本地图像加载缓慢?
【发布时间】:2016-05-02 17:47:20
【问题描述】:

我已经开发 Android 应用程序已有六年了,并且使用一个简单的“本土”图像缓存库也有同样长的时间。我最近开始使用依赖于 Picasso 的组件,并决定是时候切换到通用库,而不是保留多年前编写的旧解决方案。

我的大部分图片都是存储在可绘制文件夹中的本地图片,尺寸适中(每边 100-200 像素)。

但是,当使用 Picasso 将图像加载到我的布局的 ImageView 中时,我发现性能明显下降。在被渲染的布局和位图变得可见之间有一个可见的“光点”(一旦图像被缓存,这个光点就会消失)。使用我的 HG 库,它基本上只是 BitmapFactory.decodeResource,在一个稀疏的 SoftReferences 数组周围有一些缓存编码(正如我所说,这是 old),相同视图的加载是无缝的,并且似乎是瞬间。

显然,我通常加载图像的方式和 Picasso 中的异步加载方式存在很大差异,但这真的是预期的行为吗?这似乎使毕加索不适合将本地可绘制对象加载到 UI 中,我觉得这很令人惊讶。我用非常简单的方式加载图像:

Picasso.with(getActivity())
    .load(getPixId)
    .into(imageView);

有没有办法调整它以获得更好的性能?我可能会忽略什么?

【问题讨论】:

    标签: android picasso


    【解决方案1】:

    您可以禁用淡入淡出动画以提高加载速度

    Picasso.with(getActivity()).load(getPixId).noFade().into(imageView);

    如果你加载了很多图片,尝试使用 resize 以获得更好的内存性能:

    Picasso.with(getActivity()).load(getPixId).resize('widthImageView', 'heightImageView').noFade().into(imageView);

    如果您使用列表视图,您可以停止加载图像 onScroll 以提高性能:

    Picasso.with(getActivity()).load(getPixId).resize('widthImageView', 'heightImageView').noFade().tag('a group tag').into(imageView);

    @Override public void onScrollStateChanged(AbsListView view, int scrollState) { final Picasso picasso = Picasso.with(context); if (scrollState == SCROLL_STATE_IDLE || scrollState == SCROLL_STATE_TOUCH_SCROLL) { picasso.resumeTag(context); } else { picasso.pauseTag(context); } }

    对于其他解决方案,您可以查看此帖子Picasso Github

    如果这些解决方案都不适合您,请尝试使用其他库。在这里您可以找到最著名的图像库及其优缺点Stackoverflow Answer

    【讨论】:

    • 感谢您的回复。不幸的是,这并不能解决问题 - 加载仍然存在明显的延迟。
    • 不客气。您是否测试过仅加载 1 张图像?你看到这个滞后了吗?
    • 还没有只用一张图片(6-7 张图片)进行测试,但无论如何我都没有任何情况下只拥有一张会有用。也没有使用 ListView,只是放置在一个普通的 LinearLayout 中的图像。不幸的是,调整大小没有帮助。现在也尝试过使用 Glide,我在那里看到了同样的问题,所以我认为这只是异步加载方法的结果。
    • 什么是“组标签”,我在哪里使用它?
    【解决方案2】:

    这是一个迟到的答案,但我对同样的问题很好奇。这是我从杰克本人那里发现的。希望这可以帮助。 LINK

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 2015-05-16
      • 1970-01-01
      • 2016-09-20
      • 2018-10-17
      • 1970-01-01
      相关资源
      最近更新 更多