我正在使用Fresco通过uri将手机存储中的图像加载到SimpleDraweeView(内部和外部,使用内容提供商 - 'content://')。它们装载正常,但如果它们的属性中设置了方向,则继续旋转。我试图用.setAutoRotateEnabled(true)属性设置imageRequest,但由于某种原因它对我不起作用。有关如何旋转图像以正确显示它们的任何建议吗?
imageView.setController(
controllerBuilder
.setOldController(imageView.getController())
.setImageRequest(imageRequestBuilder
.setSource(uri)
.setAutoRotateEnabled(true)
.setResizeOptions(null)
.build())
.build());
答案 0 :(得分:3)
我通过设置.setDownsampleEnabled(false)解决了这个问题。我不知道为什么,但我想下采样是真正的实验,并阻止自动旋转发生。
答案 1 :(得分:1)
自动旋转是默认设置,因此如果设置了方向,图像将会旋转。如果这不是您想要的,请尝试将其设置为false。
答案 2 :(得分:1)
我也有同样的问题,在Fresco中启用了下采样会阻止您使用EXIF数据禁用图像的自动旋转。
我最近打开了issue关于此问题,并且默认情况下自动旋转已开启,但这在任何地方都没有记录,这导致我数小时的头痛。目前尚未得到Fresco开发者的回应。
编辑:此问题现已在Fresco v0.14中修复。
答案 3 :(得分:0)
由于某些原因, setAutoRotateEnabled(true)也不适用于我,所以我被迫始终旋转90度
科林代码
val request = ImageRequestBuilder.newBuilderWithSource(uri)
.setResizeOptions(ResizeOptions(width, height))
.setRotationOptions(RotationOptions.forceRotation(RotationOptions.ROTATE_90))
.build()