Я работаю над одним из приложений чата, где загружаются изображения.
Недавно я перешел на Fresco для кэширования памяти. Я не использую Fresco для загрузки изображений, но использую fresco для просмотра изображений путем создания URI с использованием уже загруженного локального файла.
Однако согласно профилировщику Android было замечено, что Fresco потребляет больше памяти по сравнению с моим старым механизмом кэширования памяти.
Я не использовал дополнительные настройки и просто использовал "Fresco.initialize(context)" для инициализации.
не могли бы вы подсказать, где я делаю ошибку? Вот мой код:
private void setImage(Context context, boolean isSvg, final SimpleDraweeView imageView, final String filePath, ImageData data) {
GenericDraweeHierarchy hierarchy = GenericDraweeHierarchyBuilder.newInstance(context.getResources()).build();
if(data.isFadeInBitmap()) {
hierarchy.setFadeDuration(FADE_IN_TIME);
}
if(data.isRound()) {
hierarchy.setRoundingParams(RoundingParams.asCircle());
}
int width = imageView.getLayoutParams().width;
int height = imageView.getLayoutParams().height;
ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(UriUtil.getUriForFile(new File(filePath)));
if (width > 0 && height > 0) {
imageRequestBuilder.setResizeOptions(new ResizeOptions(width, height));
}
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setOldController(imageView.getController())
.setImageRequest(imageRequestBuilder.build())
.build();
imageView.setHierarchy(hierarchy);
imageView.setController(controller);
if(isSvg) {
imageView.setLayerType(View.LAYER_TYPE_SOFTWARE,null);
}
}