Вы должны использовать Fresco как потрясающую библиотеку загрузки изображений, созданной Facebook, и она имеет функциональные возможности для загрузки изображения замещающего изображения низкого качества при фактическом загрузке изображений с полным разрешением.
Но проблема в том, что вам нужно иметь небольшую миниатюру где-то, где вы можете загрузить образ заполнителя, такие приложения, как Instagram, имеют большую базу данных, где у них есть изображения с различным сжатием.
Как только у вас есть это может использовать объект DraweeController
для загрузки изображений в вашем DraweeView
, как это
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setLowResImageRequest(ImageRequest.fromUri(arrayList.get(position).getWallpaperURL()))
.setImageRequest(ImageRequest.fromUri(arrayList.get(position).getWallpaperFullURL()))
.setOldController(draweeView.getController())
.build();
draweeView.getHierarchy().setProgressBarImage(new FrescoCircularImageLoader());
//Assigning the controller to DraweeView
draweeView.setController(controller);
Проблема в том, что Nginx использует directio_alignment 512, но это не работает, когда жесткие диски имеют размер сектора 4096.
Установка directio_alignment в 4k решает проблему, и теперь Nginx может читать с дисков с 512 и 4096 секторами.
Конфигурация Nginx:
aio threads;
aio_write on;
directio 8M;
directio_alignment 4k;