Android: 如何使用 Fresco 旋转图像
Android: how to rotate image using Fresco
我正在使用 Fresco 通过 uri 将图像从 phone 存储加载到 SimpleDraweeView(内部和外部,使用内容提供程序 - 'content://')。它们加载正常,但如果它们的属性中设置了方向,则会继续旋转。我尝试使用 .setAutoRotateEnabled(true) 属性 设置 imageRequest,但由于某些原因它对我不起作用。关于如何旋转图像以正确显示它们有什么建议吗?
imageView.setController(
controllerBuilder
.setOldController(imageView.getController())
.setImageRequest(imageRequestBuilder
.setSource(uri)
.setAutoRotateEnabled(true)
.setResizeOptions(null)
.build())
.build());
Auto-rotate 是默认值,因此如果设置了方向,图像将旋转。如果这不是您想要的,请尝试将其设置为 false。
我通过设置 .setDownsampleEnabled(false) 解决了这个问题。我不知道为什么,但我想下采样确实是实验性的,并且可以防止 auto-rotating 发生。
我也有同样的问题,在 Fresco 中启用缩减采样会阻止您禁用带有 EXIF 数据的图像的自动旋转。
我最近打开了一个关于这个的 issue,默认情况下自动旋转是打开的,但这在任何地方都没有记录,这让我头疼了好几个小时。尚未收到 Fresco 开发人员的回复。
编辑:该问题现已在 Fresco v0.14 中修复。
出于某种原因 setAutoRotateEnabled(true) 对我也不起作用所以我被迫总是旋转到 90 度
Kotlin 代码
val request = ImageRequestBuilder.newBuilderWithSource(uri)
.setResizeOptions(ResizeOptions(width, height))
.setRotationOptions(RotationOptions.forceRotation(RotationOptions.ROTATE_90))
.build()
我正在使用 Fresco 通过 uri 将图像从 phone 存储加载到 SimpleDraweeView(内部和外部,使用内容提供程序 - 'content://')。它们加载正常,但如果它们的属性中设置了方向,则会继续旋转。我尝试使用 .setAutoRotateEnabled(true) 属性 设置 imageRequest,但由于某些原因它对我不起作用。关于如何旋转图像以正确显示它们有什么建议吗?
imageView.setController(
controllerBuilder
.setOldController(imageView.getController())
.setImageRequest(imageRequestBuilder
.setSource(uri)
.setAutoRotateEnabled(true)
.setResizeOptions(null)
.build())
.build());
Auto-rotate 是默认值,因此如果设置了方向,图像将旋转。如果这不是您想要的,请尝试将其设置为 false。
我通过设置 .setDownsampleEnabled(false) 解决了这个问题。我不知道为什么,但我想下采样确实是实验性的,并且可以防止 auto-rotating 发生。
我也有同样的问题,在 Fresco 中启用缩减采样会阻止您禁用带有 EXIF 数据的图像的自动旋转。
我最近打开了一个关于这个的 issue,默认情况下自动旋转是打开的,但这在任何地方都没有记录,这让我头疼了好几个小时。尚未收到 Fresco 开发人员的回复。
编辑:该问题现已在 Fresco v0.14 中修复。
出于某种原因 setAutoRotateEnabled(true) 对我也不起作用所以我被迫总是旋转到 90 度
Kotlin 代码
val request = ImageRequestBuilder.newBuilderWithSource(uri)
.setResizeOptions(ResizeOptions(width, height))
.setRotationOptions(RotationOptions.forceRotation(RotationOptions.ROTATE_90))
.build()