J'utilise Fresco pour charger des images de la mémoire du téléphone par uri dans SimpleDraweeView (à la fois interne et externe, en utilisant le fournisseur de contenu - 'content: //'). Ils se chargent correctement, mais continuent de tourner s'ils ont une orientation définie dans leurs propriétés. J'ai essayé de définir imageRequest avec la propriété .setAutoRotateEnabled (true), mais pour une raison quelconque, cela ne fonctionne pas pour moi. Des suggestions sur la façon de faire pivoter les images pour les afficher correctement?

imageView.setController(
            controllerBuilder
                    .setOldController(imageView.getController())
                    .setImageRequest(imageRequestBuilder
                            .setSource(uri)
                            .setAutoRotateEnabled(true)
                            .setResizeOptions(null)
                            .build())
                    .build());
2
aleien 29 déc. 2015 à 18:34

4 réponses

Meilleure réponse

J'ai résolu ce problème en définissant .setDownsampleEnabled (false). Je ne sais pas pourquoi, mais je suppose que le sous-échantillonnage est encore VRAIMENT expérimental et empêche la rotation automatique.

3
aleien 4 janv. 2016 à 18:40

J'ai également eu le même problème, où l'activation du sous-échantillonnage dans Fresco vous empêche de pouvoir désactiver la rotation automatique des images avec des données EXIF.

J'ai récemment ouvert un problème à ce sujet, et le fait que l'auto- la rotation est activée par défaut mais cela n'est documenté nulle part, ce qui m'a causé des heures de grattage. Aucune réponse des développeurs de Fresco pour le moment.

EDIT: Le problème est maintenant résolu dans Fresco v0.14.

1
James Busby 1 oct. 2016 à 00:09

Pour une raison quelconque, setAutoRotateEnabled (true) ne fonctionnait pas non plus pour moi, j'ai donc forcé de toujours pivoter à 90 degrés

Code Kotlin

       val request = ImageRequestBuilder.newBuilderWithSource(uri)
            .setResizeOptions(ResizeOptions(width, height))
            .setRotationOptions(RotationOptions.forceRotation(RotationOptions.ROTATE_90))
            .build()
0
Jorge Casariego 29 août 2018 à 16:47

La rotation automatique est la valeur par défaut, de sorte que l'image pivote si l'orientation est définie. Essayez de le définir sur false si ce n'est pas ce que vous voulez.

1
tyronen 4 janv. 2016 à 14:36