Я разрабатываю экран галереи, чтобы пользователь мог выбрать некоторые изображения с устройства и отправить другому пользователю. Я использую Fresco
для загрузки изображений, но, в зависимости от устройства, изображения загружаются очень медленно, а прокрутка на экране также медленная.Уменьшение изображений с помощью 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);
Он работает, но, как говорится в документации:
Это замедлит ваши декодирования и, возможно, остальную часть вашего приложения, так как оно интенсивно потребляет процессор
В результате нет, что я, как пользователь, ожидает.
Кто-нибудь знает, как решить эту проблему?
Спасибо!
Что вы подразумеваете под * В результате нет, что я, как пользователь, ожидает. *? – Blackbelt
@ В некоторых устройствах, у которых хорошая камера (на пример), изображения очень большие. В этом случае даже мощные устройства тоже замедляются. Не слишком много, но если я делаю быстрый прокрутки, это не гладко – rsicarelli
ok, я бы использовал 'setDownsampleEnabled' вместо' setResizeOptions'. В соответствии с документом, он должен быть более эффективным. – Blackbelt