2015-12-29 2 views
1

Я разрабатываю экран галереи, чтобы пользователь мог выбрать некоторые изображения с устройства и отправить другому пользователю. Я использую 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); 

Он работает, но, как говорится в документации:

Это замедлит ваши декодирования и, возможно, остальную часть вашего приложения, так как оно интенсивно потребляет процессор

В результате нет, что я, как пользователь, ожидает.

Кто-нибудь знает, как решить эту проблему?

Спасибо!

+1

Что вы подразумеваете под * В результате нет, что я, как пользователь, ожидает. *? – Blackbelt

+0

@ В некоторых устройствах, у которых хорошая камера (на пример), изображения очень большие. В этом случае даже мощные устройства тоже замедляются. Не слишком много, но если я делаю быстрый прокрутки, это не гладко – rsicarelli

+0

ok, я бы использовал 'setDownsampleEnabled' вместо' setResizeOptions'. В соответствии с документом, он должен быть более эффективным. – Blackbelt

ответ

0

Как указано, setting downsampling on должен улучшить вашу производительность. Вы действительно должны сделать это при запуске приложения или активности.

Есть ли причина, по которой это не сработает?

Смежные вопросы