Existe uma declaração no Android canvas.drawBitmap(visiblePage, 0, 0, paint);
Quando eu adiciono canvas.rotate(90)
, não há efeito. Mas se eu escrever
canvas.rotate(90)
canvas.drawBitmap(visiblePage, 0, 0, paint);
Não recebo nenhum bitmap desenhado. Então, o que não estou fazendo certo?
Respostas:
Você também pode tentar este
Então você pode usar a imagem girada para definir em sua visualização de imagem por meio
fonte
bitmap.recycle()
para ter certeza.Para obter bitmap de recursos:
fonte
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.
Extensão curta para Kotlin
E uso:
fonte
Abaixo está o código para girar ou redimensionar sua imagem no Android
Você também pode verificar este link para obter detalhes: http://www.anddev.org/resize_and_rotate_image_-_example-t621.html
fonte
Por padrão, o ponto de rotação é o ponto (0,0) do Canvas, e meu palpite é que você pode querer girá-lo em torno do centro. Eu fiz isso:
fonte
I simplificaria comm1x 's função de extensão Kotlin ainda mais:
fonte
Usando o
createBitmap()
método Java , você pode passar os graus.fonte
Se você girar o bitmap, 90 180 270 360 está certo, mas para outros graus, a tela desenhará um bitmap com tamanho diferente.
Então, a melhor maneira é
fonte
Caso seu objetivo seja ter uma imagem girada em um imageView ou arquivo, você pode usar Exif para isso. A biblioteca de suporte agora oferece isso: https://android-developers.googleblog.com/2016/12/introducing-the-exifinterface-support-library.html
Abaixo está seu uso, mas para atingir seu objetivo, você deve verificar a documentação da API da biblioteca para isso. Só queria dar uma dica de que girar o bitmap nem sempre é a melhor maneira.
dependência
fonte
Apenas tome cuidado com o tipo de bitmap da chamada da plataforma java, como nas respostas de comm1x e Gnzlt , porque ele pode retornar nulo. Eu acho que também é mais flexível se o parâmetro pode ser qualquer número e usar infixo para facilitar a leitura, dependendo do seu estilo de codificação.
Como usar?
fonte