Hay una declaración en Android canvas.drawBitmap(visiblePage, 0, 0, paint);
Cuando agrego canvas.rotate(90)
, no hay efecto. Pero si escribo
canvas.rotate(90)
canvas.drawBitmap(visiblePage, 0, 0, paint);
No obtengo ningún mapa de bits dibujado. Entonces, ¿qué no estoy haciendo bien?
Respuestas:
También puedes probar este
Luego puede usar la imagen rotada para configurar su vista de imagen
fuente
bitmap.recycle()
para estar seguro.Para obtener mapa de bits de los recursos:
fuente
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.
Extensión corta para Kotlin
Y uso:
fuente
A continuación se muestra el código para rotar o cambiar el tamaño de su imagen en Android
También puede consultar este enlace para obtener más detalles: http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
fuente
Por defecto, el punto de rotación es el punto (0,0) del lienzo, y supongo que es posible que desee rotarlo alrededor del centro. Yo lo hice:
fuente
Me simplificar comm1x 's función de extensión Kotlin aún más:
fuente
Usando el
createBitmap()
método Java puedes pasar los grados.fuente
Si gira el mapa de bits, 90 180 270 360 está bien, pero para otros grados, el lienzo dibujará un mapa de bits con un tamaño diferente.
Entonces, la mejor manera es
fuente
En caso de que su objetivo sea tener una imagen rotada en un imageView o archivo, puede usar Exif para lograrlo. La biblioteca de soporte ahora ofrece eso: https://android-developers.googleblog.com/2016/12/introducing-the-exifinterface-support-library.html
A continuación se muestra su uso, pero para lograr su objetivo, debe verificar la documentación de la API de la biblioteca para eso. Solo quería dar una pista de que rotar el mapa de bits no siempre es la mejor manera.
dependencia
fuente
Solo tenga cuidado con el tipo de mapa de bits de la llamada a la plataforma Java, como las respuestas de comm1x y Gnzlt , porque podría devolver un valor nulo. Creo que también es más flexible si el parámetro puede ser cualquier Número y usar infijo para legibilidad, depende de su estilo de codificación.
¿Cómo utilizar?
fuente