2

我正在使用 Fresco 通过 uri 将手机存储中的图像加载到 SimpleDraweeView(内部和外部,使用内容提供程序 - 'content://')。它们加载正常,但如果它们的属性中设置了方向,则继续旋转。我尝试使用 .setAutoRotateEnabled(true) 属性设置 imageRequest,但由于某种原因它对我不起作用。关于如何旋转图像以正确显示它们的任何建议?

imageView.setController(
            controllerBuilder
                    .setOldController(imageView.getController())
                    .setImageRequest(imageRequestBuilder
                            .setSource(uri)
                            .setAutoRotateEnabled(true)
                            .setResizeOptions(null)
                            .build())
                    .build());
4

4 回答 4

3

我通过设置 .setDownsampleEnabled(false) 解决了这个问题。我不知道为什么,但我想下采样确实是实验性的,并且可以防止自动旋转发生。

于 2016-01-04T18:40:36.323 回答
1

自动旋转是默认设置,因此如果设置了方向,图像将旋转。如果这不是您想要的,请尝试将其设置为 false。

于 2016-01-04T14:36:25.880 回答
1

我也遇到了同样的问题,在 Fresco 中启用下采样会阻止您使用 EXIF 数据禁用图像的自动旋转。

我最近打开了一个关于这个问题的问题,默认情况下自动旋转是打开的,但这一点没有记录在任何地方,这让我头疼了好几个小时。Fresco 开发人员尚未做出回应。

编辑:这个问题现在在 Fresco v0.14 中得到修复。

于 2016-06-07T17:56:43.930 回答
0

出于某种原因setAutoRotateEnabled(true)也对我不起作用,所以我被迫总是旋转到 90 度

科特林代码

       val request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setResizeOptions(ResizeOptions(width, height))
            .setRotationOptions(RotationOptions.forceRotation(RotationOptions.ROTATE_90))
            .build()
于 2018-08-29T16:47:04.297 回答