Il y a une déclaration dans Android canvas.drawBitmap(visiblePage, 0, 0, paint);
Quand j'ajoute canvas.rotate(90)
, il n'y a aucun effet. Mais si j'écris
canvas.rotate(90)
canvas.drawBitmap(visiblePage, 0, 0, paint);
Je n'obtiens aucun bitmap dessiné. Alors qu'est-ce que je ne fais pas bien?
Réponses:
Vous pouvez également essayer celui-ci
Ensuite, vous pouvez utiliser l'image pivotée pour définir dans votre imageview via
la source
bitmap.recycle()
pour en être certain.Pour obtenir Bitmap à partir des ressources:
la source
If the source bitmap is immutable and the requested subset is the same as the source bitmap itself, then the source bitmap is returned and no new bitmap is created.
Extension courte pour Kotlin
Et l'utilisation:
la source
Vous trouverez ci-dessous le code pour faire pivoter ou redimensionner votre image dans Android
Vous pouvez également consulter ce lien pour plus de détails: http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
la source
Par défaut, le point de rotation est le point (0,0) du canevas, et je suppose que vous voudrez peut-être le faire pivoter autour du centre. Je l'ai fait:
la source
Je simplifierait comm1x de fonction d'extension Kotlin encore plus:
la source
En utilisant la
createBitmap()
méthode Java , vous pouvez passer les degrés.la source
Si vous faites pivoter le bitmap, 90180270360 est correct, mais pour les autres degrés, le canevas dessinera un bitmap de taille différente.
Donc, le meilleur moyen est
la source
Si votre objectif est d'avoir une image pivotée dans une imageView ou un fichier, vous pouvez utiliser Exif pour y parvenir. La bibliothèque de support propose désormais cela: https://android-developers.googleblog.com/2016/12/introducing-the-exifinterface-support-library.html
Vous trouverez ci-dessous son utilisation, mais pour atteindre votre objectif, vous devez consulter la documentation de l'API de la bibliothèque pour cela. Je voulais juste donner un indice que la rotation du bitmap n'est pas toujours la meilleure façon.
dépendance
la source
Faites juste attention au type Bitmap de l'appel de la plate-forme Java comme à partir des réponses de comm1x et de Gnzlt , car il peut renvoyer null. Je pense qu'il est également plus flexible si le paramètre peut être n'importe quel nombre et utiliser un infixe pour la lisibilité, cela dépend de votre style de codage.
Comment utiliser?
la source