我正在使用Fresco显示本地驱动器中的图像。我的问题是Fresco不会在DraweeView中显示完整的高质量图像,而是显示质量非常低的微小图像,如下所示:
(我也用actualImageScaleType="fitCenter"
查看了图片,所以不仅仅是它们是尺寸较小的高质量图片,而且质量非常差,而且分辨率非常低。)
图像由手机的800万像素摄像头拍摄,因此质量很好。我也在电脑上看了它们,看到了高质量的800万像素图像。因此,我必须做错事,并以某种方式显示低质量的图像。
在布局xml中,我有以下定义SimpleDraweeView元素:
<com.facebook.drawee.view.SimpleDraweeView
android:id="@+id/image_gallery_drawee_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
fresco:placeholderImage="@drawable/ic_photo_black_48dp"
fresco:placeholderImageScaleType="fitCenter"
fresco:actualImageScaleType="center" />
然后在代码中:
GenericDraweeHierarchy hierarchy = new GenericDraweeHierarchyBuilder(context.getResources())
.setActualImageScaleType(ScalingUtils.ScaleType.FIT_XY)
.build();
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(Uri.parse(FILE_LOADER_PREFIX.concat(images.get(position)
.getLocalImagePath())))
.setOldController(draweeView.getController())
.build();
draweeView.setHierarchy(hierarchy);
draweeView.setController(controller);
我需要为Fresco显示高分辨率/高质量图像做什么?
更新:这些图片未压缩,只是通过fileOutputStream.write(imageByteArray)
保存。
现在,如果我更改此项并使用bitmap.compress(Bitmap.CompressFormat.JPEG, 75, bufferedOutputSteam)
压缩图像,则会在DraweeView中显示高质量图像。但是,通过这种方式,应用程序会大幅减慢速度。
答案 0 :(得分:0)
我是Fresco团队的一员,也许可以提供帮助。 您使用的是什么版本的Fresco?我们最近修复了一个错误,这会导致一些本地图像显示为缩略图。这绝对看起来像是一个bug的表现,升级到最新的Fresco可能会有所帮助。