A imagem captura sempre fica em landscape, como devo proceder para gravar a imagem em protrait? Como faço para configurar a aplicação ou rotacionar a imagem?
A imagem captura sempre fica em landscape, como devo proceder para gravar a imagem em protrait? Como faço para configurar a aplicação ou rotacionar a imagem?
Você pode rotacionar a imagem no seu FormularioHelper
, no método carregaImagem
:
public void carregaImagem(String localArquivoFoto) {
Bitmap imagemFoto = BitmapFactory.decodeFile(localArquivoFoto);
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap imagemFotoRotacionada = Bitmap.createBitmap(imagemFoto, 0, 0, imagemFoto.getWidth(), imagemFoto.getHeight(), matrix, true);
Bitmap imagemFotoReduzidaERotacionada = Bitmap.createScaledBitmap(imagemFotoRotacionada, 100, 100, true);
aluno.setFoto(localArquivoFoto);
foto.setImageBitmap(imagemFotoReduzidaERotacionada);
}
Boa noite Felipe! Cheguei numa solução muito parecida com essa, mas notei que a performance do App caiu muito, principalmente na mudança de telas entre a listagem de alunos e formulário de cadastro\alteração. Alterei a rotina para a sua sugestão, mas o problema de performance continua, estou achando que é devido a qualidade da câmera que está captando as imagens em alta resolução ficando em média 2Mb cada imagem, o que você acha sobre essa suspeita? Será que há uma forma de "forçar a configuração" para o App capturar imagens com resoluções e tamanho menores?
Acabei de fazer uns testes aqui, realmente o que detona a performance do App é o tamanho da imagem. Agora é descobrir como setar a configuração da câmera através do App impossibilitando ajuste pelo usuário.
De fato, fazer resize (ou qualquer outra operação de maipulação) toda hora num Bitmap acaba prejudicando a performance da app. No caso da nossa app, sempre utilizamos a imagem num tamanho pequeno, então poderíamos trabalhar sempre com o thumbnail da foto, em vez da imagem com 2MB.
Uma ideia seria salvar no caminho da foto o arquivo Bitmap já reduzido. Dessa forma, não precisaríamos fazer o resize. O problema é que a câmera não possui uma opção de definir programaticamente as dimensões da imagem a ser salva; desse modo, a solução seria gerar o Bitmap reduzido e passá-lo para um arquivo na URL que geramos.