【发布时间】: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中这样做,对吧? -
应该是流水线的方法