【问题标题】:Scaling down images using Fresco使用 Fresco 缩小图像
【发布时间】:2015-12-29 12:35:57
【问题描述】:

我正在开发一个图库屏幕,以允许用户从设备中选择一些图像并将其发送给另一个用户。我正在使用Fresco 加载图像,但根据设备的不同,图像加载速度非常慢,屏幕上的滚动也很慢。

最初,我是这样加载图像的:

Uri uriPhoto = Uri.parse("file://" + photoGallery.imageUri);
holder.draweeView.setImageURI(uriPhoto);

然后我找到了setResizeOptions()

Uri uriPhoto = Uri.parse("file://" + photoGallery.imageUri);

ImageRequest request = ImageRequestBuilder.newBuilderWithSource(uriPhoto)
        .setResizeOptions(new ResizeOptions(60, 60))
        .build();
PipelineDraweeController controller = (PipelineDraweeController) Fresco.newDraweeControllerBuilder()
        .setOldController(holder.draweeView.getController())
        .setImageRequest(request)
        .build();

holder.draweeView.setController(controller);

它有效,但是,正如文档所说:

它会减慢您的解码速度,可能还会减慢您的应用程序的其余部分,因为它是 CPU 密集型的

结果不是我作为用户所期望的。

有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

  • 你所说的结果不是我作为用户所期望的。 ?
  • @Blackbelt 在某些具有良好相机的设备中(例如),图像非常大。在这种情况下,即使是功能强大的设备也会变慢。不是太多,但如果我快速滚动它就不流畅
  • 好的,我会使用setDownsampleEnabled 而不是setResizeOptions。根据文档,它应该更有效
  • @Blackbelt 但是,我必须在我的Application 中这样做,对吧?
  • 应该是流水线的方法

标签: android fresco


【解决方案1】:

正如所指出的,setting downsampling on 应该会提高您的性能。您确实必须在应用程序或活动启动时执行此操作。

这对你不起作用有什么原因吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    • 2019-06-30
    • 2012-01-27
    • 1970-01-01
    • 2011-09-21
    • 2017-10-14
    • 1970-01-01
    相关资源
    最近更新 更多